已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气动焊枪市场发展现状调查及供需格局分析预测报告
- 2024年度文化艺术品拍卖委托合同
- 04年车位租赁合同简单范本
- 2024年度互联网信息服务合同:互联网服务提供商为用户提供互联网信息服务的合同
- 2024年度医疗设备供应与安装合同
- 胶合板压合机市场发展现状调查及供需格局分析预测报告
- 2024年度安保服务承包合同
- 测微规市场需求与消费特点分析
- 足球棋市场环境与对策分析
- 2024年度污水处理设施变形缝安装合同
- (完整word版)吊点计算
- 文件雅思考试准考证
- 《触电急救》-课件
- 病例报告表格模板CRF
- 《极致挑逗:双人共抚全图解120招》读书笔记模板
- 贵州省黔东南州2022-2023学年七年级上学期期末考试数学试卷(含答案)
- 全国行政区划代码
- 班主任带班育人方略ppt
- Unit 3 Its a pineapple Lesson 13 (说课稿)-2022-2023学年英语四年级上册
- 广电和通信设备调试工(高级)理论考试备考题库(重点500题)
- 英语词根词缀博览知到章节答案智慧树2023年成都锦城学院
评论
0/150
提交评论