Search code examples
ctreelinked-listtreenodetraversal

How to make a Traversable Tree Data Structure in C


Does anyone have any good examples of building a tree data structure both iteratively and recursively in C Language (!C++)? Also to traverse through the tree and cover every node..

I'm likely to use this struct:

typedef struct treeNode *treeLink;
struct treeNode {
    Item item;
    treeLink left, right;
};

Solution

  • treeLink Traverse_In_Order(treeLink  current){
              if(curernt == NULL) return NULL;
              Traverse(current->left);
              operation(current->item);
              Traverse(current->right);
              return current; // in case you want to do something on this node
    }
    
    
    treeLink Traverse_Pre_Order(treeLink  current){
              if(curernt == NULL) return NULL;
              operation(current->item);
              Traverse(current->left);        
              Traverse(current->right);
              return current; // in case you want to do something on this node
    }
    
    treeLink Traverse_Pos_Order(treeLink  current){
              if(curernt == NULL) return NULL;
              Traverse(current->left);        
              Traverse(current->right);
              operation(current->item);
              return current; // in case you want to do something on this node
    }