# include // #include // #include // #include // #include // #include // #include using namespace std; struct treenode{ int value; treenode* parent; treenode* lchild; treenode* rchild; }; void TreeInsert (treenode * root, int x){ treenode* n = new treenode; n->value=x; n->lchild = n->rchild = NULL; treenode* e = root; while(1){ if (e->value<=x){ if (e->rchild==NULL){ e->rchild=n; n->parent=e; return; } e=e->rchild; } if (e->value>x){ if (e->lchild==NULL){ e->lchild=n; n->parent=e; return; } e=e->lchild; } } } void TraverseInorder (treenode* node){ if (node==NULL) return; TraverseInorder (node->lchild); cout<<" "<value; TraverseInorder (node->rchild); } void TraversePreorder (treenode* node){ if (node==NULL) return; cout<<" "<<"address="<lchild); cout<<"\ngoing right ..."; TraversePreorder (node->rchild); } // treenode* SearchTree (treenode* root, int val){ // // } int main(){ treenode* root = new treenode; root->value = 100; root->parent=NULL; root->lchild=root->rchild=NULL; int v; for (int i=0;i<10;i++){ cout<<"value=";cin>>v; TreeInsert(root, v); } TraverseInorder(root); cout<<"\n\n"; TraversePreorder(root); return 0; }