实验二 根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树(6页).doc
《实验二 根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树(6页).doc》由会员分享,可在线阅读,更多相关《实验二 根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树(6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-数据结构实验报告实验名称: 实验二根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树学生姓名: 郭江枫班 级: 2017211125班内序号: 10学 号: 2017210722日 期: 2018年5月24日1实验要求根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树基本要求:根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树。 二叉树的基本功能:1、二叉树的建立2、前序遍历二叉树3、中序遍历二叉树4、后序遍历二叉树5、按层序遍历二叉树6、求二叉树的深度7、求指定结点到根的路径8、二叉树的销毁9、其他:自定义操作编写测试main()函数测试线性表的正确性2. 程序分析
2、2.1 存储结构 编码表存储结构:二叉树二叉链表示例如图:lrcdatarchlrcdatarchlrcdatarchlrcdatarchlrcdatarchlrcdatarchlrcdatarch二叉树结点结构: templatestruct node/定义结点T data;/数据node*lch;/左孩子node*rch;/右孩子;2.2 关键算法分析实现该项目需要有如下步骤:步骤一:创建二叉树步骤二:前序遍历步骤三:中序遍历步骤四:后序遍历步骤五:层序遍历步骤六:计算树的深度步骤七:求指定结点到根的路径步骤八:二叉树的销毁步骤一:根据顺序存储结构和性质5,可知如果当前节点的位置为i,则左
3、孩子位置为2i,右孩子为2i+1.所以,创建二叉树以顺序存储结构为输入,采用先建立根结点,再建立左右孩子的方法递归建立二叉链表的二叉树。templatevoid creat(node*&R, T data, int i, int n)/创建二叉树if (i = n&datai - 1)/如果n个数据没有存储完并且数据不为空R = new node;/定义一个新结点R-data = datai - 1;/将第i个数据赋给R的datacreat(R-lch, data, 2 * i, n);/递归,建立左子树creat(R-rch, data, 2 * i + 1, n);/递归,建立右子树els
4、e R = NULL;/如果不满足,则为空步骤二:由二叉树的前序遍历定义,结合递归,写出前序遍历的递归算法。templatevoid preorder(node*R)/前序遍历if (R != NULL)/如果R不为空,则执行以下操作cout data;/输出R的数据preorder(R-lch);/遍历左子树preorder(R-rch);/遍历右子树 步骤三:由二叉树的中序遍历定义,结合递归,写出中序遍历的递归算法。templatevoid inorder(node*R)/中序遍历if (R != NULL)/如果R不为空,则执行以下操作inorder(R-lch);/遍历左子树cout
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 根据二叉树的抽象数据类型的定义 使用二叉链表实现一个二叉树6页 实验 根据 二叉 抽象 数据类型 定义 使用 实现 一个
限制150内