Perche visualizzo sempre e solo 1???codice:/* ### Copyright (c) 2004 Luca Francesca ### This script is provided under the terms of the GNU General Public License ### (see http://www.gnu.org/licenses/gpl.html for the full license text.) */ #include <iostream> #include <ctime> #define __DEBUG__ using namespace std; struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int val, TreeNode *l, TreeNode *r) { #if defined(__DEBUG__) cout << "Added " << val << "\n"; #endif this->val = val; left = l; right = r; }; }; class Tree { private: TreeNode *root; void AddElem(TreeNode *aux, int val) { if(aux == NULL) { aux = new TreeNode(val, NULL, NULL); } else if(val <= aux->val) AddElem(aux->left, val); else if(val > aux->val) AddElem(aux->right, val); }; void InternalShowInOrder(TreeNode *P) { if (P->left) InternalShowInOrder(P->left); cout << P->val << "\n"; if (P->right) InternalShowInOrder(P->right); ;} public: Tree(int elem) { root = new TreeNode(elem, NULL, NULL); }; void Add(int val) { AddElem(root, val); }; void Print() { InternalShowInOrder(root); } ~Tree(){ delete root; root = NULL; }; }; int main(int argc, char *argv[]) { Tree tr(1); srand(time(NULL)); for(int i = 0; i < (rand()%10);i++) { tr.Add( i + (rand()%25) ); } tr.Print(); char exit; std::cin.get(exit); return 0; }
Tnk

Rispondi quotando

