抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "stdio.h"
#include "stdlib.h"

#undef OK
#define OK 1
#undef ERROR
#define ERROR 0
#undef OVERFLOW
#define OVERFLOW -2
#undef NULL
#define NULL 0
typedef char TElemType;
typedef int Status;
typedef struct BiTNode
{ // 结点结构
TElemType data;
struct BiTNode *lchild, *rchild; // 左右孩子指针
} BiTNode, *BiTree;
//以下是建立二叉树存储结构
Status CreateBiTree(BiTree &T)
{
char ch;
scanf("%c", &ch);
if (ch == '#')
T = NULL;
else
{
//请在此填写代码,将该算法补充完整,参见书本和课件相关章节
T = (BiTNode *)malloc(sizeof(BiTNode));
T->data = ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return OK;
}

/**先序遍历 根左右**/
void PreOrder(BiTree T)
{
if (T)
{
printf("%4c", T->data); // 访问结点
//请在此填写代码,将该算法补充完整,参见书本和课件相关章节
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}

/**中序遍历 左根右**/
void InOrder(BiTree T)
{
if (T)
{
//请在此填写代码,将该算法补充完整,参见书本和课件相关章节
InOrder(T->lchild);
printf("%4c", T->data);
InOrder(T->rchild);
}
}

/**后序遍历 左右根**/
void PostOrder(BiTree T)
{
//请在此填写代码,将该算法补充完整,参见书本和课件相关章节
if (T)
{
PostOrder(T->lchild);
PostOrder(T->rchild);
printf("%4c", T->data);
}
}

int main()
{
BiTree T;
int s = 0, m = 0, n = 0, d = 0;
T = NULL;
printf("\n 请按先序次序输入各结点的值,以#表示空树:\n");
CreateBiTree(T);
printf("二叉树已建立完毕!\n");
printf("\n 先序遍历:");
PreOrder(T);
printf("");

printf("\n 中序遍历:");
InOrder(T);
printf("");

printf("\n 后序遍历:");
PostOrder(T);
printf("\n");
return 0;
}

用户交流区

温馨提示: 遵纪守法, 友善评论!





津ICP备19009605号

WordCount24k