- 1
- 0
- 约1.66千字
- 约 3页
- 2018-03-09 发布于河南
- 举报
二叉树-数据结构
#includestdio.h
#includemalloc.h
#define NULL 0
#define MAXSIZE 100
#define TRUE 1
#define FALSE 0
typedef char TElemType;
typedef struct BTNode
{
TElemType data;
BTNode *lchild,*rchild;
}BTNode,*BiTree;
typedef struct
{
BiTree data[MAXSIZE];
int top;
}Stack;
void InitStack(Stack S)
{
S.top = 0;
}
int StackEmpty(Stack S)
{
if(S.top==0)return 1;
else return 0;
}
void Push(Stack S,BiTree e)
{
if(S.topMAXSIZE)return;
S.data[S.top++] = e;
}
BiTree Pop(Stack S)
{
if(StackEmpty(S))return 0;
return S.data[--S.top];
}
void CreatBiTree(BiTree T)
{
TElemType ch;
scanf(%c,ch);
if(ch==#)T = NULL;
else
{
T = (BiTree)malloc(sizeof(BTNode));
T-data = ch;
CreatBiTree(T-lchild);
CreatBiTree(T-rchild);
}
}
void PreOrderTraverse(BiTree T)
{
if(T)
{
printf(%6c,T-data);
PreOrderTraverse(T-lchild);
PreOrderTraverse(T-rchild);
}
}
void InOrderTraverse(BiTree T)
{
if(T)
{
InOrderTraverse(T-lchild);
printf(%6c,T-data);
InOrderTraverse(T-rchild);
}
}
void PostOrderTraverse(BiTree T)
{
if(T)
{
PostOrderTraverse(T-lchild);
PostOrderTraverse(T-rchild);
printf(%6c,T-data);
}
}
void InOrderTraverse1(BiTree T)
{
BiTree p;
p = T;
Stack S;
InitStack(S);
while(!StackEmpty(S)||p)
if(p){Push(S,p);p = p-lchild;}
else
{
p = Pop(S);
printf(%6c,p-data);
p = p-rchild;
}
}
void main()
{
BiTree T;
printf(请输入字符建立二叉树(空格用#表示):\n);
CreatBiTree(T);
printf(先序遍历结果为:\n);
PreOrderTraverse(T);
printf(\n中序遍历结果为(递归):\n);
InOrderTraverse(T);
printf(\n中序遍历结果为(非递归):\n);
InOrderTraverse(T);
printf(\n后序遍历结果为:\n);
PostOrderTraverse(T);
printf(\n);
}
您可能关注的文档
最近下载
- 广东省2021年专升本考试《政治理论》真题及答案.pdf VIP
- 2026年运输公司年后复工安全培训课件.pptx VIP
- 2025年春人教PEP三年级英语下册教案:Unit 6 Numbers in life.docx VIP
- 驾照考试科目一试题.docx VIP
- 设施农业CAD绘图教程.pptx
- 2025年新疆高考理综真题试卷及答案.docx VIP
- 2026在京全国性宗教团体应届高校毕业生招聘16人备考题库及参考答案详解一套.docx VIP
- 2026在京全国性宗教团体应届高校毕业生招聘16人备考题库含答案详解(完整版).docx VIP
- TCL 滚筒洗衣机TG-V80BA使用说明书.pdf
- 云南省中考:2025年-2023年《语文》考试真题与参考答案.pdf
原创力文档

文档评论(0)