树的遍历实验报告

发布时间:2022-12-11 01:58:06   来源:文档文库   
字号:
实验项目:树的遍历

1.实验目的:学会创建一棵二叉树,以及完成对树的简单操作。2.实验内容:

1生成一棵以二叉链表存储的二叉树bt(不少于15个结点)2分别用递归和非递归方法前序遍历bt,并以缩格形式打印bt上各结点的信息。
3编写算法,交换bt上所有结点的左、右子树,并以缩格形式打印出交换前后的bt结点信息。
3.程序简介:先创建一棵二叉树,递归非递归前序遍历,层次遍历,交换左右子树,缩格打印各结点的信息。4.算法设计介绍:
首先按照前序遍历的顺序递归创建一棵二叉树,然后序遍历的非递归使用堆栈完成的,即访问该结点的时候,如果有右孩子,让右孩子进栈,访问左孩子,当左孩子为空时,抛出栈顶的元素,访问出栈的这个元素的左右孩子。缩格打印和层次遍历想法类似,都是借助队列完成的,把当前结点的左右孩子进队列之后,让这个结点出队列。交换左右子树,就是当某个结点的左右子树不同时为空时,定义一个中间变量交换。5.困难及解答
一开始创建二叉树的参数我想用指向结构体的指针,后来才意识到得用指向指针的指针,想了好一段时间才想明白,因为某个结点的左右孩子是指向结点的指针,要想再指向一个指针,只能用指针的指针了。

6.心得
树这一章我听得乱七八糟,上课能听懂,但就是不会编程,要不是书上有算法,我估计我肯定编不出来,看来还是得多编啊。程序清单
/*//我真诚地保证:

//我独立完成了整个程序从分析、设计到编码的所有工作。//如果在上述过程中,我遇到了什么困难而求教于人,那么,我将在程序实习报告中
//详细地列举我所遇到的问题,以及别人给我的提示。

//我的程序里中凡是引用到其他程序或文档之处,
//例如教材、课堂笔记、网上的源代码以及其他参考书上的代码,//我都已经在程序的注释里很清楚地注明了引用的出处。

//我从未没抄袭过别人的程序,也没有盗用别人的程序,//不管是修改式的抄袭还是原封不动的抄袭。


本文来源:https://www.2haoxitong.net/k/doc/83bc2a7da417866fb84a8e9c.html

《树的遍历实验报告.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式