在创建二叉树的时候,当节点为叶子节点,需要将叶子节点的两个子节点输入0,以0作为结束标识符。
1.建立二叉树的结构体
typedef struct tree* bintree;
typedef bintree position;
struct tree {
int data;
position lchild;
position rchild;
};
2.按照前序排序顺序建立二叉树
bintree creattree()
{
int ch;
bintree t;
cin >> ch;
if (0 == ch)
{
t = NULL;
}
else
{
t = (struct tree*)malloc(sizeof(struct tree));
t->data = ch;
t->lchild=creattree();
t->rchild=creattree();
}
return t;
}
3.按照前序和中序遍历二叉树
void pre_display(bintree head)
{
if (head)
{
cout << head->data << ' ';
pre_display(head->lchild);
pre_display(head->rchild);
}
}
void inorder_display(bintree head)
{
if (head)
{
inorder_display(head->lchild);
cout << head->data << ' ';
inorder_display(head->rchild);
}
}
主函数:
int main()
{
bintree head;
bintree p;
head = NULL;
p=creattree();
pre_display(p);
system("PAUSE");
}