home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / OBJASM.ZIP / OUTRAVER.C < prev    next >
C/C++ Source or Header  |  1989-05-24  |  826b  |  37 lines

  1. #include <stdio.h>
  2. #include "o.h"
  3.  
  4. NODE_T *start( root_node, direct )
  5.     NODE_T  *root_node;
  6.     int     direct;
  7. {
  8.     NODE_T  *curr_node;
  9.     int     con_direct;
  10.  
  11.     curr_node = root_node->ptr[RIGHT];
  12.     con_direct = 1 - direct;
  13.     while ( !curr_node->thread[1-direct] ) {
  14.         curr_node = curr_node->ptr[con_direct];
  15.     }
  16.     return( curr_node );
  17. }
  18.  
  19. NODE_T *traverse( curr_node, direct )
  20.     NODE_T   *curr_node;
  21.     int     direct;
  22. {
  23.     int     con_direct;
  24.  
  25.     if ( curr_node->thread[direct] ) {
  26.         return( curr_node->ptr[direct] );
  27.     } else {
  28.         curr_node = curr_node->ptr[direct];
  29.         con_direct = 1 - direct;
  30.         while ( !curr_node->thread[1-direct] ) {
  31.             curr_node = curr_node->ptr[con_direct];
  32.         }
  33.         return( curr_node );
  34.     }
  35. }
  36.  
  37.