Data Structure and Algorithm - Binary Tree Alogrithm PrintTree()
Function printTree() in by level of each tree
.....
class bSearchTreeType{
.......
printTree(); 
....... 
};
void bSearchTreeType::printTree(){ 
        int level = 0; // initialize of level of tree
/*  Condition for root is NULL ? */
        if(root == NULL)
             return; /*  Exit function if root is NULL */
/*  Create 2 Queues for store pointer of nodeType */
         queueType<nodeType*> currentlevel,nextlevel;
 /*  add pointer root into currentLevel */
         currentlevel.addQueue(root);
 /*  Condition currentlevel queue is not yet Empty then
     add pointer llink and rlink of each pointer in front queue
     to other nextlevel queue and delete currentlevel queue front
  */
          int x = level; /* is technique to print Level number */
          while(!currentlevel.isEmptyQueue()){
 /*  create pointer currNode of nodeType points to
     pointer of currentlevel queue front
     then delete queuefront of currentlevel queue
  */ 
              nodeType *currNode = currentlevel.front();
              currentlevel.deleteQueue();
              if(currNode){
                  if(x++ == level) // technique to show only once for level
                      cout<<"L["<<level<<"]\t"; 
                  cout<<currNode->info<<"\t";
                  nextlevel.addQueue(currNode->llink);
                  nextlevel.addQueue(currNode->rlink);
              }/* end if */
              if(currentlevel.isEmptyQueue()){
                  cout << endl;
                  level++;
                  x = level;
 /*  Swap object queue currentlevel and nextlevel */
                  queueType<nodeType*> temp;
                  temp = currentlevel;
                  currentlevel = nextlevel;
                  nextlevel = temp;
              }/* end if */
          } /* end while */
     } /* end if */ 
 }
 
 
 
 
          
      
 
  
 
 
 
 
 
 
 
 
 
 
No comments:
Post a Comment