二叉树递归非递归遍历.docx

上传人:p** 文档编号:1109236 上传时间:2024-07-25 格式:DOCX 页数:22 大小:40.24KB
下载 相关 举报
二叉树递归非递归遍历.docx_第1页
第1页 / 共22页
二叉树递归非递归遍历.docx_第2页
第2页 / 共22页
二叉树递归非递归遍历.docx_第3页
第3页 / 共22页
二叉树递归非递归遍历.docx_第4页
第4页 / 共22页
二叉树递归非递归遍历.docx_第5页
第5页 / 共22页
二叉树递归非递归遍历.docx_第6页
第6页 / 共22页
二叉树递归非递归遍历.docx_第7页
第7页 / 共22页
二叉树递归非递归遍历.docx_第8页
第8页 / 共22页
二叉树递归非递归遍历.docx_第9页
第9页 / 共22页
二叉树递归非递归遍历.docx_第10页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《二叉树递归非递归遍历.docx》由会员分享,可在线阅读,更多相关《二叉树递归非递归遍历.docx(22页珍藏版)》请在第壹文秘上搜索。

1、西安邮电大学(计算机学院)课内试验报告试验名称:二乂神历专业名称一通信工程班.然jT1309,学生姓名,张/学号(8位为指导老师:李树滨试验日期:.2014年11月17日-.试验目的及试验环境1,试验目的:二叉树的遍历.2,试验环境:二.试验内容从键盘接受输入先序序列,一二叉链表作为存储结构,建立二叉树(以先序来建立),并对其进行遍历,然后将遍历结果打印输出.三.方案设计(二叉树结点结构;结点数据*;左孩子*;右孩子,*;,栈结构定义);(*S);构造一个空栈S(*S);销毁栈S,S不再存在(*S);把栈S置为空栈(三);若栈S为空栈,则返回,否则返回(三);返回S元素的个数,即栈的长度(*e

2、):若栈不为空,则用e返回S的栈顶元素,并返回:否则返回(*e):插入元素e为新的栈顶元素(*e);若栈S不为空,则删除S的栈顶元素,用e返回其值,并返回,否则返回(*S):从栈底到栈顶依次对每个元素进行访问(T);按先后次序输入二叉树中结点的值(一个字符),空格表示空树构造二叉链表表示的二叉树T(*)(e);采纳二叉链表存储结结构,是对数据元素操作的应用函数先序遍历二叉树T的递归算法,对每个数据元素调用函数采纳二叉锥表存储结结构,是对数据元素操作的应用函数中序遍历二叉树T的递归算法,对每个数据元素调用函数(*)(e);采纳二叉链表存储结结构,是对数据元素操作的应用函数后序遍历二叉树T的递归算

3、法,对每个数据元素调用函数(*)(e):采纳二叉锥表存储结结构,是对数据元素操作的应用函数先序遍历二叉树T的非递归尊法,对每个数据元素调用函数(*)(e);采纳二叉链表存储结结构,是对数据元素操作的应用函数中序遍历二叉树T的非递归算法,对每个数据元素调用函数(*)(e):采纳二叉锥表存储结结构,是对数据元素操作的应用函数后序遍历二叉树T的非递归算法,对每个数据元素调用函数(e);对二叉树中的数据元素访问四,测试数据及运行结果I.正常测试数据(3组)及运行结果;IW1TtFJSMAX五.总结1 .试验过程中遇到的问题及解决方法;起初代码总是出错,不过细致检查之后,便找到了错误所在,更加加深了对程

4、序算法的理解。2 .对设计及调试过程的心得体会。更加深刻体会r编程的乐趣,对于c语言也有了更多的r解。六.附录,(电子版)1O-110010;二叉树结点元素类型(二叉树结点结构;结点数据*:左孩子*;右孩子t,栈结构定义(*S);构造一个空栈S(*S);销毁栈S,S不再存在(*S);把栈S置为空栈(三);若栈S为空栈,则返回,否则返回(三);返回S元素的个数,即栈的长度(*e):若栈不为空,则用e返回S的栈顶元素,并返回:否则返回(*e):插入元素e为新的栈顶元素(*e);若栈S不为空,则删除S的栈顶元素,用e返回其值,并返回,否则返回(*S);从栈底到栈顶依次对每个元素进行访问(T);按先后

5、次序输入二叉树中结点的值(一个字符),空格表示空树构造二叉链表表示的二叉树T(*)(e);采纳二叉链表存储结结构,是对数据元素操作的应用函数先序遍历二叉树T的递归算法,对每个数据元素调用函数(*)(e):采纳二叉锥表存储结结构,是对数据元素操作的应用函数中序遍历二叉树T的递归算法,对每个数据元素调用函数(*)(e):采纳二叉链表存储结结构,是对数据元素操作的应用函数后序遍历二叉树T的递归算法,对每个数据元素调用函数(*)(e);采纳二叉跳表存储结结构,是对数据元素操作的应用函数先序遍历二叉树T的非递归律法,对每个数据元素调用函数(*)(e);采纳二叉链表存储结结构,是对数据元素操作的应用函数中

6、序遍历二叉树T的非递归算法,对每个数据元素调用函数(*)(e);采纳二叉处表存储结结构,是对数据元素操作的应用函数后序遍历二叉树T的非递归算法,对每个数据元素调用函数(e);对二叉树中的数据元素访问O(*)(e);(请按先序遍历输入二叉树元素(每个结点一个字符,空结点为):n);(T);(n递归先序遍历:n);0;Cn递归中序遍历:n);0;CAn递归后序遍历:n);0;(n非递归先序遍历:n);0;(n非递归中序遍历:n*);0;CAn非递归后序遍历:n*);0;r.11;0:(T)(按先后次序输入二叉树中结点的值(一个字符),空格表示空树构造二叉链表表示的二叉树T(!(*)()0;:生成根

7、节点(:构造左子树(;构造右子树(*)(e)先序遍历递归算法()(;(;(*)(e)中序遍历递归算法(T)(:();(:(*)(e)后序遍历递归算法(T)(;(:()(*)(e)先序遍历二叉树T的依递归算法0;0:根指针入栈(三)0;访问根节点();(:(:)0;(*)(e)中序遍历二叉树T的非递归算法S:O;:(三)(p)():根指针进栈,遍历左子树(根指针退栈,访问根节点,遍历右子树0;();;)0;(*)(e)后序遍历二叉树T的非递归算法S;O;0;根指针入栈(三)(0)(;向左走到终点0;空指针出栈0;(;(三)(访问结点,向右i步0;(W)Z(O)若当前为右子树,则接着出栈0;(W)

8、Z0;(O):(O;();)O;(e)对二叉树中的数据元素访问C0,)依次栈操作(*S)(构造个空栈SX*)(*();()安排失败(安排内存失败n);(O););销毁栈S,S不再存在()为空(指针为空,释放失败.n);(:(*S)把栈S置为空栈()不存在干脆将栈顶指针指向栈底(三)若栈S为空栈,则返回,否则返回(三)返回S元素的个数,即栈的长度(*e)若栈不为空,则用e返回S的栈顶元素,并返回;否则返回O插入元素e为新的栈顶元素()(栈已满,追加存储空间X*)0,(*();(重新申请空间失败.n);(0):)更改栈顶指针;)*;(*e)若栈S不为空,则删除S的栈顶元素,用e返回其值,并返回,否则返回()(栈为空)*(:9)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据结构与算法

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!