使用C语言构建基本的二叉树数据结构

2020-01-06 13:43:26王冬梅
  • while (index < len && *(post + len - 1) != *(order + index)) {   index ++;  
  • }    
  • t = (btree *)malloc(sizeof(btree));   t->data = *(order + index);  
  • t->lchild = rebuildTree(order, post, index);   t->rchild = rebuildTree(order + index + 1, post + index, len - (index + 1));  
  • }    
  • return t;   }  
  •   /**  
  • * 前序遍历二叉树   */ 
  • void preTraverse(btree *t)   {  
  • if (t) {   printf("%c ", t->data);  
  • preTraverse(t->lchild);   preTraverse(t->rchild);  
  • }   }  
  •   int main(void)  
  • {   int i;  
  • char *post, *order;   btree *t;  
  •   while (scanf("%d", &n) != EOF) {  
  • post = (char *)malloc(n);   order = (char *)malloc(n);  
  •   getchar();  
  • for (i = 0; i < n; i ++)   scanf("%c", order + i);  
  •   getchar();  
  • for (i = 0; i < n; i ++)   scanf("%c", post + i);  
  •   t = rebuildTree(order, post, n);  
  •   preTraverse(t);  
  • printf("n");    
  • free(post);   free(order);  
  •   }  
  •   return 0;  
  • }