已阅读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湖南邵阳邵东市市直事业单位人才引进62人参考题库附答案
- 2026福建兆佳贸易有限公司招聘9人考试备考题库附答案
- 2026福建泉州市面向北京航空航天大学选优生选拔引进参考题库附答案
- 2026福建省面向南京航空航天大学选调生选拔工作备考题库附答案
- 2026福建莆田市城厢区国信产业投资有限公司招聘5人备考题库附答案
- 2026西藏林芝市察隅县招聘第二批社区工作者4人参考题库附答案
- 2026辽宁省中国医科大学及附属第一医院招聘高层次和急需紧缺人才2人(第二批)参考题库附答案
- 产品研发与创新管理制度
- 2026陕西省面向中山大学招录选调生考试备考题库附答案
- 培养小学生的实验操作能力
- 河南省洛阳市2023-2024学年九年级第一学期期末质量检测数学试卷(人教版 含答案)
- Unit-3-Reading-and-thinking课文详解课件-高中英语人教版必修第二册
- 气动回路图与气动元件课件
- 《念奴娇 赤壁怀古》《永遇乐 京口北固亭怀古》《声声慢》默写练习 统编版高中语文必修上册
- 妇产科病史采集临床思维
- 众辰变频器z2400t-15gy-1说明书
- DB63T 393-2002草地鼠虫害、毒草调查技术规程
- 船体振动的衡准及减振方法
- 复议诉讼证据清单通用版
- 水泥混凝土路面滑模摊铺机施工工法
评论
0/150
提交评论