2022年二叉树的基本操作.pdf
《2022年二叉树的基本操作.pdf》由会员分享,可在线阅读,更多相关《2022年二叉树的基本操作.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、浙江大学城市学院实验报告课程名称数据结构基础实验项目名称实验十二叉树的基本操作学生姓名吴奇专业班级信管 1204 学号实验成绩指导老师(签名)日期一. 实验目的和要求1、掌握二叉树的链式存储结构。2、掌握在二叉链表上的二叉树操作的实现原理与方法。3、进一步掌握递归算法的设计方法。二. 实验内容1、按照下面二叉树二叉链表的存储表示,编写头文件,实现二叉链表的定义与基本操作实现函数;编写主函数文件,验证头文件中各个操作。二叉树二叉链表存储表示如下:struct BTreeNode ElemType data; 函数的功能说明及算法思路struct BtreeNode elemtype data;
2、实验结果与分析精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 10 页 - - - - - - - - - - 五. 心得体会通过这次实验,我掌握了二叉树的基本操作,对非线性储存结构有了一定的了解,相对于之前的线性储存结构来说,非线性储存结构确实是比较抽象、困难的,在接下来的时间里,要好好对非线性储存结构了解一番。【附录 -源程序】struct BtreeNode elemtype data; /结点值域 BtreeNode *lchild; /定义左孩子指针BtreeNode *rchild
3、; /定义右孩子指针;struct lnode /定义队列结点结构用于二叉树层遍历BtreeNode *data1;lnode *next;struct Queue /定义队列首尾指针精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 10 页 - - - - - - - - - - lnode *front;lnode *back;void initQueue(Queue &Q) /初始化队列=NULL;void insertQueue(Queue &Q,BtreeNode *item) /元素
4、入队列lnode *newptr=new lnode;newptr-data1=item;newptr-next=NULL;if=NULL)=newptr;else=next=newptr;BtreeNode *deleteQueue(Queue &Q) /队首元素出队列BtreeNode *temp=data1;lnode *p=;=p-next;if=NULL)=NULL;delete p;return temp;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 10 页 - - - - -
5、 - - - - - bool emptyQueue(Queue Q) /判断队列是否为空return =NULL;void initBtree(BtreeNode *&BT) /二叉树的初始化BT=NULL;void insertBtree(BtreeNode *&BT) /创建二叉树elemtype ch;ch=getchar();if(ch=$) /判断是不是结束标志BT=NULL;elseBT=new BtreeNode; /创建结点BT-data=ch; /赋值insertBtree(BT-lchild); /左子叶递归insertBtree(BT-rchild); /右子叶递归bo
6、ol emptyBtree(BtreeNode *BT) /判断二叉树是否为空return BT=NULL;int depthBtree(BtreeNode *BT) /求二叉树的深度精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 10 页 - - - - - - - - - - if(emptyBtree(BT) return 0;elseint dep1=depthBtree(BT-lchild); /左子叶递归int dep2=depthBtree(BT-rchild); /右子叶递归r
7、eturn dep1dep2dep1+1:dep2+1; /判断哪个子叶的深度最大 /树的深度为左右子叶的最大深度加上1void preorder(BtreeNode *BT) /前序遍历if(!emptyBtree(BT)coutdatalchild); /左子叶递归preorder(BT-rchild); /右子叶递归void midorder(BtreeNode *BT) /中序遍历if(!emptyBtree(BT)midorder(BT-lchild); /左子叶递归coutdatarchild); /右子叶递归void laterorder(BtreeNode *BT) /后序遍历
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 二叉 基本 操作
限制150内