小问题小问题。不给分。也不用看了。
我编了一个程序。
关于2叉树的。
建立2叉树。
然后打印前,中,后续遍利
然后输入一个植,看这个植是不是在2叉树里。
前中后我的 遍里都出来了。
就是植在不在2叉数里没有成功。
#define NULL 0
struct tree
{
struct tree *left;
int data;
struct tree *right;
};
typedef struct tree treenode;
typedef struct tree *b_tree;
b_tree creat_btree()
{
b_tree newnode;
newnode=(b_tree)malloc(sizeof(treenode));
scanf("%d",&newnode->data);
if(newnode->data==0)
newnode=NULL;
else
{
newnode->left=creat_btree();
newnode->right=creat_btree();
}
return newnode;
}
void preorder_print_btree(b_tree root)
{
if(root!=NULL)
{printf("%d",root->data);
preorder_print_btree(root->left);
preorder_print_btree(root->right);
}
}
void inorder_print_btree(b_tree root)
{
if(root!=NULL)
{inorder_print_btree(root->left);
printf("%d",root->data);
inorder_print_btree(root->right);
}
}
void posorder_print_btree(b_tree root)
{
if(root!=NULL)
{posorder_print_btree(root->left);
posorder_print_btree(root->right);
printf("%d",root->data);
}
}
void main()
{
b_tree root=NULL;
root=creat_btree();
printf("preorder\n");
preorder_print_btree(root);
printf("\n");
printf("inorder\n");
inorder_print_btree(root);
printf("\n");
printf("posorder\n");
posorder_print_btree(root);
printf("\n");
}