C   12
void BreadthFirst
Guest on 11th July 2024 08:31:17 AM


  1. #include <stdio.h>
  2. #include "Queue.h"
  3.  
  4. void BreadthFirst(Tree T, void process(TreeElementType E))/*       L*/
  5.  { Queue Q;  Tree subT;                                          /*.*/
  6.    if( T != NULL )                                               /*A*/
  7.     { Q = NULL;                                                  /*l*/
  8.       addq(T, &Q); /* i.e. Q = <T> */                            /*l*/
  9.                                                                  /*i*/
  10.       while( !emptyq(Q) )                                        /*s*/
  11.        { popq(&subT, &Q);                                        /*o*/
  12.                                                                  /*n*/
  13.          if(subT->left  != NULL) addq(subT->left,  &Q); /* addq any */
  14.          if(subT->right != NULL) addq(subT->right, &Q); /* children */
  15.  
  16.          process(subT->elt);
  17.        }/*while*/
  18.     }/*if*/
  19.  }/*BreadthFirst*/
  20.  
  21. /* Breadth First Traversal of a Tree */

Raw Paste

Login or Register to edit or fork this paste. It's free.