数据结构课程设计之-树与二叉树的转换(8)
时间:2026-01-19
时间:2026-01-19
}
void traverse(bitrees bt) //按层次遍历树中结点 {
linkqueue q; bitrees p; initqueue(q); p=bt;
enqueue(q,p);
while(queueempty(q)!=1) {
dequeue(q,p);
if(p->lchild!=NULL) enqueue(q,p->lchild); if(p->rchild!=NULL) enqueue(q,p->rchild); }
四.}设计与调试分析
1.二叉树遍历中用到的最重要的一个思想就是递归调用,这次作业使我们对递归有了深入的理解,程序调试比较顺利。
2.用栈同样可以实现二叉树的遍历,这是我们认识到解决问题可以由多种不同的途径,应随时将以前学过的只是灵活应用起来,解决新问题。
3.因为遍历二叉树的基本操作是访问结点,所以无论哪一种遍历方式,对含有n个结点的二叉树,其时间复杂度为O(n),所需辅助空间最大容量为树的深度,最坏为n,所以空间复杂度为O(n)。
4.因该程序对应不同的遍历定义了不同的结构,使每种结构的通用性降低,可以往在递归和非递归中使用同一种结构这一方面做进一步的思考。
五.用户手册
运行程序,首先出现主界面。主界面有七个选项。 选项一、以双亲法创建一棵树。
选项二、此选项可以对所创建的树采用递归算法进行前序遍历。 选项三、此选项可以对所创建的树采用递归算法进行后序遍历。 选项四、此选项可以对所创建的树采用非递归算法进行先序遍历。 选项五、此选项可以对所创建的树采用非递归算法进行后序遍历。
上一篇:人教版小学四年级下册语文期末试卷
下一篇:病理生理学问答题重点