# include // #include // #include // #include // #include // #include // #include //#include "../../../code/queue_stack_vip.h" #include "queue_stack.h" using namespace std; # include "treenode.h" void TreeInsert (treenode * root, int x){ //create a new node treenode* n = new treenode; n->setvalue( x); //make it a leaf n->lchild = n->rchild = NULL; //look for a place in the tree to insert it treenode* e = root; while(1){ cout<<" --- val="<getvalue()<<")"<size++; if (e->getvalue()<=x){ if (e->rchild==NULL){ e->rchild=n; n->parent=e; return; } e=e->rchild; } else if (e->getvalue()>x){ if (e->lchild==NULL){ e->lchild=n; n->parent=e; return; } e=e->lchild; } } } void TraversePreorder (treenode* node){//parent-lchild-rchild if (node==NULL) {cout<< "NULL."; return;} cout<<" "<<"address="<lchild); cout<<"\ngoing right ..."; TraversePreorder (node->rchild); } void TraversePostorder (treenode* node){//lchild-rchild-parent if (node==NULL) {cout<< "NULL."; return;} cout<<"\ngoing left ..."; TraversePostorder (node->lchild); cout<<"\ngoing right ..."; TraversePostorder (node->rchild); cout<<" "<<"address="<lchild->TraverseInorder(); cout<<"\n\n"; // return 0; cout<<"\n\n TRAVERSAL in PREORDER\n"; TraversePreorder(root); cout<<"\n\n\n\n TRAVERSAL in POSTORDER\n"; TraversePostorder(root); //return 0; cout<<"\n\n\n\n TRAVERSAL BFS\n"; TraverseBFS(root); cout<<"\n\n\n\n\n\n\n\n TRAVERSAL DFS\n"; DFS_nonrec(root); return 0; }