已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#include#define STACK_INIT_SIZE 10#define STACKINCREMENT 5typedef struct BiTNode char data; struct BiTNode *lchild,*rchild;BiTNode,*BiTree;typedef struct BiTree *base; BiTree *top; int stacksize;SqStack;int InitStack(SqStack *S) S-base=(BiTree*)malloc(STACK_INIT_SIZE*sizeof(BiTree); if(!S-base)exit(-1); S-top=S-base; S-stacksize=STACK_INIT_SIZE; return 1;void Push(SqStack *S,BiTree T) if(S-top-S-base=S-stacksize) S-base=(BiTree*)realloc(S-base,(S-stacksize+STACKINCREMENT)*sizeof(BiTree); if(!S-base)exit(-1); S-top=S-base+S-stacksize; S-stacksize+=STACKINCREMENT; *(S-top)+=T;int Pop(SqStack *S,BiTree *T) if(S-top=S-base)return 0; *T=*-(S-top); return 1;BiTree CreateBiTree(BiTree *T) char ch; scanf(%c,&ch); if(ch=#) *T=NULL; else *T=(BiTree)malloc(sizeof(BiTNode); (*T)-data=ch; CreateBiTree(&(*T)-lchild); CreateBiTree(&(*T)-rchild); return *T;void PreOrderTraverse(BiTree T) if (T) printf(%c ,T-data); if(T-lchild) PreOrderTraverse(T-lchild); if(T-rchild) PreOrderTraverse(T-rchild); void PreOrder(BiTree T) SqStack S; InitStack(&S); while(T|S.base!=S.top) if(T) Push(&S,T); printf(%c ,T-data); T=T-lchild; else Pop(&S,&T); T=T-rchild; void InOrderTraverse(BiTree T) if (T) if (T-lchild) InOrderTraverse(T-lchild); printf(%c ,T-data); if (T-rchild) InOrderTraverse(T-rchild); void InOrder(BiTree T) SqStack S; InitStack(&S); while(T|S.base!=S.top) if(T) Push(&S,T); T=T-lchild; else Pop(&S,&T); printf(%c ,T-data); T=T-rchild; void PostOrderTraverse(BiTree T) if (T) if (T-lchild) PostOrderTraverse(T-lchild); if (T-rchild) PostOrderTraverse(T-rchild); printf(%c ,T-data); void Getnum(BiTree T) int n=0,m=0; SqStack S; InitStack(&S); while(T|S.base!=S.top) if(T) Push(&S,T); n+; if(T-lchild=NULL&T-rchild=NULL) m+; T=T-lchild; else Pop(&S,&T); T=T-rchild; printf(%d %d,n,m);void main() BiTree T; printf(建立一个二叉树:); CreateBiTree(&T); if(T) printf(先序递归遍历:); PreOrderTraverse(T); putchar(n); printf(中序递归遍历:); InOrderTraverse(T); putchar(n); printf(后序递归遍历:); PostOrderTraverse(T); putchar(n); printf(先序非递归遍历:); Pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园危险化学品及消毒剂管理测试卷
- 2026年民航系统民航应急救援与消防题库
- 2026年苏木退化草原修复题库
- 安徽省盐业投资集团2026届秋招市场营销岗面试题
- 2026年农产品直播带货运营团队搭建问答
- 2026年新入职软件工程师代码规范题库
- 2026年文旅融合文化传承知识竞赛
- 2026年青年干部思想政治教育专项题库
- 2026年国际形势与青年外交素养题库
- 2026年教育政策与法规单选题集
- 水文地质勘察课件
- 拖式混凝土输送泵的泵送部分设计(全套图纸)
- 正畸治疗的生物机械原理-矫治力与牙齿的移动(口腔正畸学课件)
- 粮食仓储企业安全风险辨识与管控分级指南
- 危化企业双重预防机制数字化建设运行成效评估
- 2022年苏州太仓市特殊教育岗位教师招聘考试笔试试题及答案解析
- 派昂医药协同应用价值
- GB/T 2521.1-2016全工艺冷轧电工钢第1部分:晶粒无取向钢带(片)
- GB/T 24405.1-2009信息技术服务管理第1部分:规范
- 基础会计简答题及答案
- 综合故障解决-排除p2a
评论
0/150
提交评论