我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 栈法 >

浅谈二叉树遍历的栈方法

归档日期:07-05       文本归类:栈法      文章编辑:爱尚语录

   众多周知,对于二叉树的遍历, 一种比较容易理解以及编写的方式就是递归的方式了,下面针对二叉树遍历的中序遍历做一个简单的分析:

  俺们也知道,递归算法的思想有其值的我们学习之处,但是,不过否认,递归的代价也是蛮高的,这得从递归的原理来分析,这里做一下简单的叙述:

  大家都知道递归的实现是通过调用函数本身,函数调用的时候,每次调用时要做地址保存,参数传递等,这是通过一个递归工作栈实现的。具体是每次调用函数本身要保存的内容包括:局部变量、形参、调用函数地址、返回值。那么,如果递归调用N次,就要分配N*局部变量、N*形参、N*调用函数地址、N*返回值。这势必是影响效率的。

   那么,作为递归的一种替代方式,栈的实现,就成为了一种不错的选择:下面我就简单的叙述一下,如何在实现二叉树的遍历中来运用栈的思想:

   其实嘛,说到底,递归的底层(系统级)实现也是使用栈的,如上所说,故递归的栈替换依旧不足为奇了,栈是一种先进后出结构的容器,通过简单的数据结构(j结构体),我们即可以模拟栈的实现,当然,本文主要是谈二叉树的遍历,至于栈的实现吗,读者自己去查吗!!!

  1:沿着p左孩子方向深度遍历值没有左孩子的节并按循序入栈。(前提:有左孩子) 最对会带一个空指针

本文链接:http://apawoodbury.com/zhanfa/188.html