[工学]数据结构实验四.doc
《[工学]数据结构实验四.doc》由会员分享,可在线阅读,更多相关《[工学]数据结构实验四.doc(10页珍藏版)》请在三一办公上搜索。
1、贵州大学实验报告学院:计信学院 专业:通信工程 班级:通信091姓名何川学号0908060235实验组实验时间2011.12、指导教师陈静成绩实验项目名称二叉树操作实验目的1、熟悉二叉树结点的结构和对二叉树的基本操作及具体实现。2、利用递归方法编写对二叉树的各种遍历算法。3、掌握递归方法在二叉树中的使用。实验要求1、认真阅读和掌握本实验内容所给的全部程序。2、在Visual C+6.0集成开发环境下编写和调试所有程序。3、编写的所有算法须给出测试函数,并自行设计测试数据,对算法进行测试。4、保存和打印出程序运行结果,并结合程序进行分析。5、按照你对二叉树操作的需要,重新改写主文件并运行,打印出
2、主文件清单 和运行结果。实验原理Visual C+的编译环境下,独立完成实验要求的内容,独立完成编写、编以运行。实验仪器 安装了VC+6.0的PC机实验步骤1、 实现二叉树结点的定义和操作。该程序包括一个头文件,用来存储定义二叉树结构类型以及对二叉树进行各种操作的函数声明;第二个为操作的实现文件,用来存储每一种操作的具体函数定义以及主函数。二叉树的操作包括二叉树初始化、创建二叉树,判断二叉树是否为空,求二叉树的深度和结点数,遍历二叉树等。2、 已知二叉树的前序遍历序列和中序遍历序列,编写可唯一确定该二叉树的算法。3、根据所给的n个带权叶子结点,编写算法构造哈夫曼树和哈夫曼编码。实验内容()ty
3、pedef char ElemType;struct BTreeNodeElemType data;BTreeNode *left;BTreeNode *right;void InitBTree(BTreeNode *&BT);void CreatBTree(BTreeNode *&BT,char *a);bool EmptyBTree(BTreeNode *BT);void TraverseBTree(BTreeNode *BT);int BTreeDepth(BTreeNode *BT);int BTreeCount(BTreeNode &BT);void PrintBTree(BTree
4、Node *BT);#include #include using namespace std; void InitBTree(BTreeNode *&BT)BT=NULL;void CreatBTree(BTreeNode *&BT,char *a)const int MaxSize=100;BTreeNode *sMaxSize;int top=-1;BT=NULL;BTreeNode *p;int k;int i=0;while(ai)switch(ai)case :break;case (:if(top=MaxSize-1)cout栈空间不够,请重新分配栈空间!endl;exit(1)
5、;top+;stop=p;k=1;break;case ):if(top=-1)cout二叉树广义表字符串错!data=ai;p-left=p-right=NULL;if(BT=NULL)BT=p;elseif(k=1)stop-left=p;elsestop-right=p;i+;bool EmptyBTree(BTreeNode *BT)return BT=NULL;void TraverseBTree(BTreeNode *BT)if(BT!=NULL)coutdataleft);TraverseBTree(BT-right);int BTreeDepth(BTreeNode *BT)i
6、f(BT=NULL)return 0;else int i=BTreeDepth(BT-left);int j=BTreeDepth(BT-right); if(ij) return i+1; else return j+1;int BTreeCount(BTreeNode *BT)if(BT=NULL)return 0;elseint i= BTreeCount(BT-left);int j= BTreeCount(BT-right); return i+j+1;void PrintBTree(BTreeNode *BT)if(BT!=NULL)coutdata;if(BT-left!=NU
7、LL|BT-right!=NULL)coutleft);if(BT-right!=NULL)coutright);cout);void main()BTreeNode *bt;InitBTree(bt);char b50=A(B(C),D(E(F,G),H(,I);CreatBTree(bt,b);PrintBTree(bt);coutendl;cout前序:;TraverseBTree(bt);coutendl;cout二叉树的深度为:;coutBTreeDepth(bt)endl;cout二叉树的结点总数为:;coutBTreeCount(bt)endl;BTreeNode *PreMin
8、CreateTree(char pre,char min,BTreeNode *&p,int i,int j,int len)BTreeNode *p,*q;for(i=0;idata=prei; for(j=0;jleft=prei+1;(2) typedef char ElemType;struct BTreeNodeElemType data;BTreeNode *left;BTreeNode *right;BTreeNode *PreMinCreateTree(char pre,char min,BTreeNode *&p,int i,int j,int len);int Positi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 数据结构 实验
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4532954.html