2016 - 2024

感恩一路有你

java实现简单的二叉树 层序遍历二叉树与经典递归遍历的性能差距多大?

浏览量:2796 时间:2021-03-24 16:55:00 作者:admin

层序遍历二叉树与经典递归遍历的性能差距多大?

递归遍历二叉树程序很短,易懂。在性能方面,递归速度快,占用内存少。但递归程序包含深度优先和广度优先的遍历方法,比较复杂,容易出错。

现在CPU速度非常快,堆栈空间非常大。性能差异可以忽略不计。

或递归遍历二叉树程序可读性更好。

二叉树的层次遍历?

设计一个遍历二叉树的算法(从左到右访问同一层)。思路:用队列保存当前节点的左右子节点,实现序列遍历。

Void hierarchy BiTree(BiTree root){

linkqueue*q//保存当前节点左右子节点的队列

initqueue(q)//初始化队列

if(root==null)return//树为空时返回

binode*P=root//将树根临时保存到指针P

visit(P->data)//访问根节点

if(P->lchild)enqueue(Q,P->lchild)//如果有左子级,左子级进入队列

if(P->rchild)enqueue(Q,P->rchild)//如果有右子级,右子级进入队列

while(!Queueempty(q))//如果队列不为空,则序列遍历{dequeue(q,P)//出队列

visit(P->data)//访问当前节点

if(P->lchild)enqueue(q,P->lchild)//如果有左子级,则左子级进入队列

if(P->rchild)enqueue(q,P->rchild)//如果有左子级右子,右子进入队列

}

destroy queue(q)//释放队列空间

return

这很详细!你能理解的!加油!

java实现简单的二叉树 java层次遍历二叉树 java二叉树遍历算法

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。