📄 打开这个.cpp
字号:
#include "Tree.h"
void main()
{
BiTree T,p;
int choose;
char e,P,LR,c;
int k;
system("color 1b");
while(1)
{
Main_Face();
printf("请选择操作:");
scanf("%d",&choose);
switch(choose)
{
case 1:
printf("请输入二叉树:");
getchar();
InitBiTree(T);
CreateBiTree(T);
getchar();
printf("\t【二叉树创建成功】");
Clear();
break;
case 2:
printf("请输入双亲结点:");
getchar();
scanf("%c",&P);
printf("请输入要插的位置【L/R】");
getchar();
scanf("%c",&LR);
printf("请输入该插入元素的值:");
getchar();
scanf("%c",&c);
InsertChild(T,P,LR,c);
Clear();
break;
case 3:
printf("请输入双亲结点:");
getchar();
scanf("%c",&P);
printf("请输入要删除的位置【L/R】");
getchar();
scanf("%c",&LR);
DeleteChild(T,P,LR);
printf("\t【删除成功】");
Clear();
break;
case 4:
if(Root(T))
{
if(T->data==NULL)
{
printf("【根节点无数据】");
}
else
{
printf("【根节点是%c】",T->data);
}
}
else
{
printf("【该树无根节点】");
}
Clear();
break;
case 5:
BiTreeEmpty(T);
Clear();
break;
case 6:
if(T->data==NULL)
{
printf("【该树的深度是:0】");
}
else
{
printf("【该树的深度是:%d】",PostTreeDepth(T));
}
Clear();
break;
case 7:
printf("【先序遍历结果是】→");
PreOrderTraverse(T);
Clear();
break;
case 8:
printf("【中序遍历结果是】→");
InOrderTraverse(T);
Clear();
break;
case 9:
printf("【后序遍历结果是】→");
PostOrderTraverse(T);
Clear();
break;
case 10:
Leveltraverse(T);
Clear();
break;
case 11:
k=0;
printf("【竖向树状图】→\n");
DisplayTree(T,k);
DisplayTree1(T);
Clear();
break;
case 12:
printf("请输入要查找的结点:");
getchar();
scanf("%c",&e);
p=SearchLChild(T,e);
if(p)
{
printf("【%c的左孩子是%c】",e,p->LChild->data);
}
else
{
printf("【该结点没有左孩子】");
}
Clear();
break;
case 13:
printf("请输入要查找的结点:");
getchar();
scanf("%c",&e);
SearchRChild(T,e);
p=SearchRChild(T,e);
if(p)
{
printf("【%c的右孩子是%c】",e,p->RChild->data);
}
else
{
printf("【该结点没有右孩子】");
}
Clear();
break;
case 14:
printf("请输入要查找的结点:");
getchar();
scanf("%c",&e);
if(T->data==e)
{
printf("【根结点无左兄弟】");
break;
}
p=SearchLBrother(T,e);
if(p)
{
printf("【%c的左兄弟是%c】",e,p->LChild->data);
}
else
{
printf("【该结点无左兄弟】");
}
Clear();
break;
case 15:
printf("请输入要查找的结点:");
getchar();
scanf("%c",&e);
if(T->data==e)
{
printf("【根结点无左兄弟】");
break;
}
p=SearchRBrother(T,e);
if(p)
{
printf("【%c的右兄弟是%c】",e,p->RChild->data);
}
else
{
printf("【该结点无右兄弟】");
}
Clear();
break;
case 16:
printf("请输入要查找双亲的孩子结点:");
getchar();
scanf("%c",&e);
p=SearchParent(T,e);
if(p)
{
printf("【双亲是%c】",p->data);
}
else
{
printf("【无双亲】");
}
Clear();
break;
case 17:
printf("请输入要查找祖先的孩子结点:");
getchar();
scanf("%c",&e);
printf("祖先是:");
ParentParent(T,e);
Clear();
break;
case 18:
printf("【所有的叶子节点是】");
SearchTreeNode(T);
Clear();
break;
case 19:
DestroyTree(T);
printf("【销毁成功】");
printf("【谢谢您的使用!再见!】");
exit(0);
break;
case 0:
printf("【谢谢您的使用!再见!】");
exit(0);
break;
default:
printf("【输入错误!请重新选择】");
Clear();
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -