年级 | 2009 | 班号 | 组号 | 学号 | |||
专业 | 数学与应用数学 | 姓名 | |||||
实验名称 | 二叉树的遍历 | 实验室 | 9202 | ||||
实 验 目 的 或 要 求 | 了解二叉树的定义、性质、存储结构等相关知识,在熟悉这些内容的基础上掌握二叉树在某种存储结构下遍历以及相关算法的实现及应用,能根据本章所学到的有关知识设计出有效的算法。 | ||||||
实 验 原 理 ( 算 法 流 flying fish程 ) | 1、实验内容 二叉树的创建和遍历演示 (1)从键盘输入二叉树的各结点值,按先序递归方式创建二叉树 (2)分别实现先序、中序、后序递归遍历二叉树 (3)输出二叉树的按层次遍历序列 2、存储结构描述及说明 用链式存储结构储存二叉树,结点定义如下: typedef struct BiTNode { char data; struct BiTNode*lchild,*rchild; } data表示二叉树中的字符。lchild为指向一个包含(data lchild rchild)的结构体变量的指针变量,指向二叉树的左孩子。rchild为指向一个包含(data lchild rchild)的结构体变量的指针变量,指向二叉树的右孩子。 victoriacross3、函数说明 BiTNode* CreatBiTree()是返回值为指向结构体指针的函数,带头结点,用于建立二叉树。 void PreOrderTraver(): 是返回值为空的递归函数,用于二叉树的先序遍历。 void InOrderTraver(BiTNode* T): 是返回值为空的递归函数,用于二叉树的中序遍历。 void PostOrderTraver(BiTNode* T): 是返回值为空的递归函数,用于二叉树的后序遍历。 void LevelorderTraver(BiTNode *T):是返回值为空的函数,用于二叉树的层次遍历。 4、模块之间的调用关系 main PreOrderTraver InOrderTraver jidePostOrderTraver LevelorderTraver (写不完时,可另加附页。) | ||||||
组 内 分 工 ( 可 选 ) | |
实 验 结 果 osaki分 析 及 心 得 体 会 | 实验结果分析: 二叉树如下图: 本实验中输入的二叉树如左图所示,以@代表空子树,按先序递归方式输入为abd@@eg@@@c@fh@@@。先序遍历二叉树,结果应为abdegcfh。中序遍历二叉树,结果应为dbgeachf。后序遍历二叉树,结果应为dgebhfca。层次遍历二叉树,结果应为abcdefgh。结果均与上图中运行的结果一致,正确。 心得体会: 1.通过本次试验,让我更深刻的理解了二叉树的性质。 2.通过这次实验,我更深刻的理解了递归算法的内涵,并熟悉了队列的应用。 3.通过这次实验,我发现了很多自己平时疏忽的细节,以后再学习过程中会注意。 |
成 绩 评 定 | 教师签名: 年 月 日 |
本文发布于:2023-07-23 22:37:59,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/90/186678.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |