数据结构实验四树与二叉树.docx
《数据结构实验四树与二叉树.docx》由会员分享,可在线阅读,更多相关《数据结构实验四树与二叉树.docx(7页珍藏版)》请在三一办公上搜索。
1、数据结构实验四 树与二叉树数据结构实验四 树与二叉树 班级 学号 姓名 分数 一、实验目的: 1、掌握二叉树的定义、性质及存储方式,各种遍历算法。 2、掌握这种存储结构的构造算法以及基于每一种结构上的算法设计 3、初步掌握算法分析方法并对已设计出的算法进行分析,给出相应的结果。 二、实验要求: 采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历的操作,求所有叶子及结点总数的操作。 三、实验内容及分析: 1、分析、理解程序。 2、调试程序,设计一棵二叉树,输入完全二叉树的先序序列,用#代表虚结点,如ABD#CE#F#,建立二叉树,求出先序、中序和后序以及按层次遍历序列,
2、求所有叶子及结点总数。 四、程序的调试及运行结果 先序遍历中序遍历后序遍历树的深度及叶子树层次遍历五、程序代码 #includestdio.h #includestdlib.h #includestring.h #define Max 20 /结点的最大个数 typedef struct node char data; struct node *lchild,*rchild; BinTNode; /自定义二叉树的结点类型 typedef BinTNode *BinTree; /定义二叉树的指针 int NodeNum,leaf; /NodeNum为结点数,leaf为叶子数 /=基于先序遍历算法
3、创建二叉树= /=要求输入先序序列,其中加入虚结点#以示空指针的位置= BinTree CreatBinTree(void) BinTree T; char ch; if(ch=getchar)=#) return(NULL); /读入#,返回空指针 else T= (BinTNode *)malloc(sizeof(BinTNode); /生成结点 T-data=ch; T-lchild=CreatBinTree; /构造左子树 T-rchild=CreatBinTree; /构造右子树 return(T); /=NLR 先序遍历= void Preorder(BinTree T) if(T
4、) printf(%c,T-data); /访问结点 Preorder(T-lchild); /先序遍历左子树 Preorder(T-rchild); /先序遍历右子树 /=LNR 中序遍历= void Inorder(BinTree T) if(T) Inorder(T-lchild); /中序遍历左子树 printf(%c,T-data); /访问结点 Inorder(T-rchild); /中序遍历右子树 /=LRN 后序遍历= void Postorder(BinTree T) if(T) Postorder(T-lchild); /后序遍历左子树 Postorder(T-rchild
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构实验四 树与二叉树 数据结构 实验 二叉
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3560258.html