?? 打開這個.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 + -