📄 tree.cpp
字号:
#include "tree.h"
//递归建树函数
treeNode* CreateFirst(){
char data;
scanf("%c",&data);
getchar();
if(data == ' '){
return NULL;
}
treeNode* father = (treeNode*)malloc(sizeof(treeNode));
father->data = data;
father->leftChild = CreateFirst();
father->rightChild = CreateFirst();
return father;
}
treeNode* CreateBitTreeInFirst(){
logo();
treeNode* temp;
printf("先序建立二叉树,请输入二叉树的先序表示\n");
printf("空格表示一个NULL节点\n");
temp = CreateFirst();
return temp;
}
void VisitRecursion(treeNode* q){
if(q == NULL)
return;
printf("%c ",q->data);
VisitRecursion(q->leftChild);
VisitRecursion(q->rightChild);
}
void VisitRecursion(treeNode* q,int s){
if(q == NULL)
return;
switch(s){
case 1:{
printf("%c ",q->data);
VisitRecursion(q->leftChild,s);
VisitRecursion(q->rightChild,s);
};break;
case 2:{
VisitRecursion(q->leftChild,s);
printf("%c ",q->data);
VisitRecursion(q->rightChild,s);
};break;
case 3:{
VisitRecursion(q->leftChild,s);
VisitRecursion(q->rightChild,s);
printf("%c ",q->data);
};break;
default:break;
}
}
void VisitBitTreeInRecursion(){
int s;
while(true){
system("cls");
logo();
printf("树的递归遍历,请选择想要演示的内容\n");
printf("1.先序\n");
printf("2.中序\n");
printf("3.后序\n");
printf("0.退出\n");
scanf("%d",&s);
getchar();
if(s==0)
break;
treeNode* head = CreateBitTreeInFirst();
VisitRecursion(head,s);
printf("\n按任意键结束");
getchar();
}
}
void VisitBitTreeInUnrecursion(){
logo();
}
int BitTreeDepth(){
logo();
return 0;
}
void Prim(){
logo();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -