?? 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 + -