二叉树的问题
本来应该输出十个数,结果就输出了 0 5 6 帮看一下哪里有错,谢谢程序代码:
#include<stdio.h> #include<stdlib.h> typedef struct tree tree; struct tree { int data; tree *left; tree *right; }; tree *tree_add(tree *root,int num) { if(root == NULL) { root=malloc(sizeof(tree)); root->data = num; root->left = root->right = NULL; return root; } else if(root->data < num) root->right = tree_add(root->right,num); else if(root->data > num) root->left = tree_add(root->left,num); else return root; } int print_tree(tree *p) { if(p->left != NULL) print_tree(p->left); printf("%d\n",p->data); if(p->right != NULL) print_tree(p->right); } int main() { tree *root; int num[10]={5,0,4,7,8,3,2,1,6}; for(int i=0;i<10;i++) if(root == NULL) root=tree_add(root,num[i]); else tree_add(root,num[i]); print_tree(root); }