欢迎来到天天文库
浏览记录
ID:9363740
大小:171.50 KB
页数:8页
时间:2018-04-29
《数据结构二叉树c语言实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数学与信息技术学院2016~2017(下)学年计科专业2015级《数据结构》实验报告5学号:2015201018姓名:汪继超实验名称树的操作实现与应用完成时间2017.05.10一.实验目的和要求:1.掌握树特别是二叉树的基本概念、定义和性质。2.掌握二叉树的基本结构、内部逻辑和三种遍历算法的基本思想,熟悉二叉树的存储结构和指针链接的变化。3.通过对二叉树的建立和三种遍历算法的实现,学会编程的方法。二.实验原理树是一种应用极为广泛的数据结构,也是本门课程的重点,它的特点在于非线性。遍历操作是树众多操作的基础,所以本次实验主要强调突出二叉树的三种基本遍历操作的实现。三.实验内容(1
2、)根据屏幕提示输入二叉树的各个结点,并建立该二叉树;(2)选择某种遍历方式输出该二叉树;(3)求该二叉树的叶子结点数;(4)求该二叉树的高度;(5)将该二叉树中所有结点的左、右子树相互换,并输出。实验过程:/*注:此程序为二叉树树的操作实现与应用*/#include#include#include#includetypedefintTElemType;typedefstructBiTNode{TElemTypedata;structBiTNode*lchild,*rchild;}BiTNode,*Bi
3、Tree;BiTNode*CreatBiTree(){BiTreeT;intch;scanf("%d",&ch);if(ch==0)T=NULL;else{T=(BiTNode*)malloc(sizeof(BiTNode));if(!T)exit(0);T->data=ch;printf("请输入%d的左结点:",ch);T->lchild=CreatBiTree();printf("请输入%d的右结点:",ch);T->rchild=CreatBiTree();}returnT;}voidPreOrderTraverse(BiTNode*P){if(P!=NULL){prin
4、tf("%-2d",P->data);PreOrderTraverse(P->lchild);PreOrderTraverse(P->rchild);}elseprintf("—");}voidInOrderTraverse(BiTNode*P){if(P!=NULL){InOrderTraverse(P->lchild);printf("%-2d",P->data);InOrderTraverse(P->rchild);}elseprintf("—");}voidPostOrderTraverse(BiTNode*P){if(P!=NULL){PostOrderTraverse
5、(P->lchild);PostOrderTraverse(P->rchild);printf("%-2d",P->data);}elseprintf("—");}voidexchange(BiTNode*P){BiTNode*q;if(P){q=P->lchild;P->lchild=P->rchild;P->rchild=q;exchange(P->lchild);exchange(P->rchild);}}intcount_leaves(BiTNode*P){if(!P)return0;elseif(!P->lchild&&!P->rchild)return1;elsere
6、turncount_leaves(P->lchild)+count_leaves(P->rchild);}intTreeHigh(BiTNode*T){intlh=0,rh=0;if(!T)return0;lh=TreeHigh(T->lchild);rh=TreeHigh(T->rchild);returnlh>rh?lh+1:rh+1;}voidMenu(){printf("欢迎使用树的操作实现与应用系统");printf("************************************菜单**********************************
7、****");printf("*1.创建树2.先序遍历二叉树*");printf("*3.中序遍历二叉树4.后序遍历二叉树*");printf("*5.左右子树交换6.求叶子数*");printf("*7.求树的深度0.退出*");printf("******************************************************************************");}voidmain(){intn,f,high,c
此文档下载收益归作者所有