📄 bt_main.cpp
字号:
//BT_main.cpp
//uuhorse
//2008.05.17
#include "St_BT.h"
#include <stdio.h>
void menu();
int main()
{
BiTree T;
BiTNode* NT;
TElemType data;
TElemType pdata;
int lr;
int dep;
int options=1; //默认初始化
menu();
while (options)
{
switch (options)
{
case 0:
break;
case 1:
InitBiTree (T);
break;
case 2:
printf("请按先序序列输入二叉树的各个节点!\n");
printf("用空格表示空节点!\n");
CreateBiTree (T);
break;
case 3:
if( BiTreeEmpty (T))
printf("T is NULL!\n");
else
printf("T is not NULL!\n");
break;
case 4:
if( BiTreeEmpty (T))
{
printf("T is NULL!\n");
break;
}
PreOrderTraverse (T);
printf("\n");
break;
case 5:
if( BiTreeEmpty (T))
{
printf("T is NULL!\n");
break;
}
InOrderTraverse (T);
printf("\n");
break;
case 6:
if( BiTreeEmpty (T))
{
printf("T is NULL!\n");
break;
}
PostOrderTraverse (T);
printf("\n");
break;
case 7:
if( BiTreeEmpty (T))
{
printf("T is NULL!\n");
break;
}
LevelOrderTraverse (T);
printf("\n");
break;
case 8:
dep=BiTreeDepth (T);
printf("Depth=%d \n",dep);
break;
case 9:
printf("请输入双亲的一个孩子节点! \n");
data=getchar();
getchar();
NT=Parent(T,data);
if(NT)
printf("%c\n",NT->data);
else
printf("未找到该节点双亲! \n");
break;
case 10:
printf("请输入孩子节点的双亲! \n");
data=getchar();
getchar();
NT=LeftChild(T,data);
if(NT)
printf("%c\n",NT->data);
else
printf("该节点无左孩子!\n");
break;
case 11:
printf("请输入孩子节点的双亲! \n");
data=getchar();
getchar();
NT=RightChild(T,data);
if(NT)
printf("%c\n",NT->data);
else
printf("该节点无右孩子!\n");
break;
case 12:
printf("请输入你想插入孩子节点的双亲! \n");
pdata=getchar();
getchar();
printf("请输入你想插入的孩子节点! \n");
data=getchar();
getchar();
printf("0、插入左孩子节点1、插入右孩子节点! \n");
scanf("%d",&lr);getchar();
NT=FineNode (T, pdata);
if(NT)
InsertChild (T, NT, lr, data);
else
printf("未找到需要插入的位置!\n");
break;
case 13:
printf("请输入你想删除孩子节点的双亲! \n");
pdata=getchar();
getchar();
printf("0、插入左孩子节点1、插入右孩子节点! \n");
scanf("%d",&lr);getchar();
NT=FineNode (T, pdata);
if(NT)
DeleteChild (T, NT, lr);
else
printf("未找到给定的节点!\n");
break;
case 14:
DestoryBiTree (T);
break;
case 15:
menu();
break;
}// switch (options)
printf("\n请选择:\n");
scanf("%d",&options);getchar();
}//while (options)
return 0;
}
void menu()
{
printf(" 0、退出 \n");
printf(" 1、初始化二叉树 T \n");
printf(" 2、生成二叉树 T \n");
printf(" 3、判断二叉树 T是否为空 \n");
printf(" 4、先序遍历二叉树 T \n");
printf(" 5、中序遍历二叉树 T \n");
printf(" 6、后序遍历二叉树 T \n");
printf(" 7、层序遍历二叉树 T \n");
printf(" 8、求二叉树 T的深度 \n");
printf(" 9、求某节点双亲 \n");
printf("10、访问左孩子节点 \n");
printf("11、访问右孩子节点 \n");
printf("12、插入孩子节点 \n");
printf("13、删除节点 \n");
printf("14、销毁二叉树T \n");
printf("15、显示菜单 \n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -