




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二叉树创建、前序遍历、中序遍历、后序遍历的递归与非递归实现以及 层次遍 历二叉树的创建:#include stdio.h”typedef char ElemType;#define MAXNUM 150/*二叉树结点定义*/typedef struct BTNode(ElemType data;struct BTNode *lchild;struct BTNode *rchild; BTNode;/*辅助的二叉树索引数组*/BTNode *pMAXNUM+1;/*根据用户输入创建二叉树*/*二叉树结点信息:数据域,以及在完全二叉树中的索引值*/BTNode *Create_BiTree(voi
2、d)(BTNode* t = NULL;int i;int j;char ch;printf (n enter i, ch :);scanf (%d,%c, &i, &ch);while (i != 0 & ch != #)BTNode* s = (BTNode*)malloc(sizeof(BTNode)s-data = ch;s-lchild = s-rchild = NULL;pi = s;if ( i = 1 )t = s;elsej = i/2;if ( i%2 = 0 )pj-lchild = s;else心-rchild=s;printf(n enter i, ch :);sca
3、nf (%d,%c, &i, &ch);return t;BTNode* t;t = Create_BiTree ();/*preorder(t);printf( preordern);preorder_recursive(t);printf( preorder_recursiven);Inorder(t);printf( Inordern);Inorder_recursive1(t);printf( Inorder_recursive1n);Inorder_recursive2(t);printf( Inorder_recursive2n);Postorder(t);printf( Post
4、ordern);Postorder_recursive(t);printf( Postorder_recursiven);LevelOrder(t);printf( LevelOrdern);*/getchar();getchar();return 0;二叉树的前序遍历,递归、非递归的实现:/*前序遍历的递归实现*/void preorder (BTNode *bt)(if (bt)(printf (%c , bt-data);preorder(bt-lchild);preorder(bt-rchild);/*前序遍历的非递归实现*/void preorder_recursive(BTNode
5、 *bt)(BTNode* p;BTNode* s MAXNUM+1; /* 辅助的模拟栈 */ int top;p=bt;top=-1;while(p|top != -1)(if(p)(printf (%c , p-data);+top;二叉树的中序遍历,递归、非递归的实现:/*中序遍历的递归实现*/void Inorder(BTNode *bt)(if (bt)(Inorder(bt-lchild);printf (%c ”, bt-data); /* 访问根结点 */ Inorder(bt-rchild); /* inorder */*中序遍历的非递归实现*/void Inorder_r
6、ecursive1(BTNode *bt )(BTNode* p,*sMAXNUM+1;int top;p=bt;top=-1;m同)if (p+top;s top=p;p=p-lchild ; /*p移向左孩子*/else /*栈非空*/p=s top;top;printf (%c ,p-data) p=p-rchild;“递void Inorder_recursive2(BTNode *bt)BTNode* p,*sMAXNUM+1;int top;p=bt;top=-1;if (p & p-lchild)+top;s top = p;Ip = p-lchild;elseif (p)pri
7、ntf (%c , p-data);if (p & p-rchild )p = p-rchild;else if ( top = 0)p = s top;top;printf (%c , p-data);p = p-rchild;else二叉树的后序遍历,递归、非递归的实现:/*后序遍历的递归实现*/void Postorder(BTNode *bt)(if (bt)(Postorder(bt-lchild);Postorder(bt-rchild);printf (%c , bt-data);/*后序遍历的非递归实现*/void Postorder_recursive(BTNode *pt)
8、(BTNode *sMAXNUM+1;int top = -1;BTNode *p = pt;BTNode *pre = NULL;while ( p | top != -1 )(if (p )(+top;s top = p;p = p-lchild;pre = p;else(p = s top/ -top;if ( p-rchild = NULL | p-rchild = pre )p = s top;-top;printf(%c , p-data);pre =p;p = NULL;elsep = p-rchild;层次遍历:/*层次遍历二叉树*/void LevelOrder (BTNode *bt)(BTNode* queue 100;int front=0,rear=0;if (bt=NULL)return;queuerear=bt;rear+;do(printf (%c , queuefront-data);/*访问队首结点的数据域*/if (queuefront-lchild!=NULL)/*将队首结点的左
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 20 曹刿论战 (教学设计)九年级语文下册同步备课系列(统编版)
- 茂名市高三第二次综合测试文综历史试题
- 学校安全法律知识
- 2025年山东省枣庄市台儿庄区中考一模语文试题(原卷版+解析版)
- 2025年会工作总结汇报
- 采购文员年终工作总结
- 教师专业技术履职总结
- 监控、校园广播、网络采购合同范本
- 水电线管安装合同
- 2025年佳木斯货运从业资格证考些什么内容
- 2025年食安食品考试题及答案
- 2025年租赁料场协议
- 新式茶饮创业趋势
- 中国大唐集团有限公司陆上风电工程标杆造价指标(2023年)
- 2025年江苏经贸职业技术学院单招职业技能考试题库带答案
- 医院保安服务方案投标文件(技术方案)
- 2025-2030年中国铸造生铁市场发展现状及前景趋势分析报告
- 输液连接装置安全管理专家共识2023
- 课件-2025年春季学期 形势与政策 第一讲-加快建设社会主义文化强国9
- 拆除临时用电施工方案
- 小学数学教学中小组合作学习课件
评论
0/150
提交评论