数据结构二叉树C语言实现.docx
《数据结构二叉树C语言实现.docx》由会员分享,可在线阅读,更多相关《数据结构二叉树C语言实现.docx(7页珍藏版)》请在第壹文秘上搜索。
1、数学与信息技术学院20162017(下)学年计科专业2015级数据结构实验报告5学号:2015201018姓名:汪继超实验名称树的操作实现与应用完成时间一.实验目的和要求:1 .掌握树特别是二叉树的根本概念、定义和性质。2 .掌握二叉树的根本结构、内部逻辑和三种遍历算法的根本思想,悉二叉树的存储结构和指针链接的变化。3 .通过对二叉树的建立和三种遍历算法的实现,学会编程的方法。熟二.实验原理树是一种应用极为广泛的数据结构,也是本门课程的重点,它的特点在于非线性。遍历操作是树众多操作的根底,所以本次实验主要强调突出二叉树的三种根本遍历操作的实现。三.实验内容(1)根据屏幕提示输入二叉树的各个结点
2、,并建立该二叉树;(2)选择某种遍历方式输出该二叉树;(3)求该二叉树的叶子结点数;(4)求该二叉树的高度;(5)将该二叉树中所有结点的左、右子树相互换,并输出。实验过程:/*注:此程序为二叉树树的操作实现与应用*/#include#include#include#includetypedefintTElemType;typedefstructBiTNodeTElemTypedata;structBiTNode*lchild,*rchild;BiTNode,*BiTree;BiTNode*CreatBiTreeOBiTreeT;intch;scanf(%d,(fech);if(ch=O)T=N
3、ULL;elseT=(BiTNode*)malloc(sizeof(BiTNode);if(!T)exit(O);T-data=ch;PrimfC请输入d的左结点:”,ch);T-lchild=CreatBiTree();PrintfC请输入d的右结点:,ch);T-rchiId=CreatBiTreeO;returnT;voidPreOrderTraverseCBiTNode*P)(if(P!=NULL)(printf(%-2d,P-data);PreOrderTraverse(P-lchiId);PreOrderTraverse(P-rchiId);)elseprintf(一,);)voi
4、dInOrderTraverse(BiTNode*P)(if(P!=NULL)InOrderTraverse(P-lchild);printf(%-2d,P-data);InOrderTraverse(P-rchild);elseprintf(一);voidPostOrderTraverse(BiTNode*P)(if(P!=NULL)(PostOrderTraverse(P-lchild);PostOrderTraverse(P-rchild);printf(%-2d,P-data);)elseprintf(一,);)voidexchange(BiTNode*P)(BiTNode*q;if(
5、P)(q=P-lchild;P-Ichild=P-rchild;P-rchild=q;exchange(P-lchild);exchange(P-rchild);)intcount_leaves(BiTNode*P)(if(!P)returnO;elseif(!P-lchild&!P-rchild)return1;elsereturncount_leaves(P-lchild)+count_leaves(P-rchild);)intTreeHigh(BiTNode*T)(intlh=0,rh=O;if(!T)returnO;lh=TrecHigh(T-lchild);rh=TrecHigh(T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 二叉 语言 实现
