数据结构-树-二叉树遍历完整可执行代码(递归/非递归)(二)
el(BitTree* bt)
{
Queue q;
q.front=q.rear=0;
if (bt!=NULL)
{
printf("%c ",bt->data);
}
q.b[q.front]=bt;
q.rear=q.rear+1;
while (q.frontleft!=NULL)
{
printf("%c ",bt->left->data);
q.b[q.rear]=bt->left;
q.rear=q.rear+1;
}
if (bt->right!=NULL)
{
printf("%c ",bt->right->data);
q.b[q.rear]=bt->right;
q.rear=q.rear+1;
}
}
}
int main()
{
BitTree* btr=Create();
printf("前序遍历:递归和非递归实现:\n");
Preorder(btr);
printf("\n");
Preorder2(btr);
printf("\n");
printf("中序遍历:递归和非递归实现:\n");
Inorder(btr);
printf("\n");
Inorder2(btr);
printf("\n");
printf("后序遍历:递归和非递归实现:\n");
Postorder(btr);
printf("\n");
Postorder2(btr);
printf("\n");
printf("二叉树的高度:\n");
int Hgt=Height(btr);
printf("%d \n",Hgt);
printf("层次遍历二叉树:\n");
TraversalOfLevel(btr);
printf("\n");
return 0;
}
/* 测试数据:
d b a # # c # # f e # # g # #
前序遍历:递归和非递归实现:
d b a c f e g
d b a c f e g
中序遍历:递归和非递归实现:
a b c d e f g
a b c d e f g
后序遍历:递归和非递归实现:
a c b e g f d
a c b e g f d
二叉树的高度:
3
层次遍历二叉树:
d b f a c e g
*/