每日一题如何进行二叉树的各种遍历的非递归算法实现?简要讲述。
Posted 学亮编程手记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题如何进行二叉树的各种遍历的非递归算法实现?简要讲述。相关的知识,希望对你有一定的参考价值。
进行二叉树的各种遍历的非递归算法实现
从当前节点开始遍历:(当入栈时访问节点内容,则为前序遍历;出栈时访问,则为中序遍 历)
若当前节点存在,就存入栈中,并访问左子树;
直到当前节点不存在,就出栈,并通过栈顶节点访问右子树;
不断重复 12,直到当前节点不存在且栈空。
只需要在入栈、出栈的时候,分别进行节点访问输出,即可分别得到前序、中序的非递归遍 历代码!从当前节点开始遍历:
若当前节点存在,就存入栈中,第一次访问,然后访问其左子树;
直到当前节点不存在,需要回退,这里有两种情况:
a) 从左子树回退,通过栈顶节点访问其右子树(取栈顶节点用,但不出栈)
b) 从右子树回退,这时需出栈,并取出栈节点做访问输出。(需要注意的是,输出完 毕需要置当前节点为空,以便继续回退。具体可参考代码中的 cur == null)
不断重复 12,直到当前节点不存在且栈空。
劝学警言
身处信息爆炸时代,知识浩瀚如海洋。
然,如同图书馆,你可以入门,但不代表你就拥有它。
且,学而不思则罔,思而不学则殆;
学贵有恒,更需注重方式方法。切记三字箴言:恒、慢、悟——
恒:坚持不懈!最忌讳的就是三天打鱼两天晒网,一曝十寒;
慢:精雕细琢!慢工出细活,理论知识一定要吃透,知其所以然;
悟:明辨慎思!要善于固化知识,一定要有自己的理解,否则就如同将他人吐在地上的吃过的甘蔗,再捡起来嚼,味同嚼蜡一般,无任何滋味可言。
送君一句话:殚精竭虑,不如须臾之所学也。
愿君,好好学习,天天向上!
共勉之!
以上是关于每日一题如何进行二叉树的各种遍历的非递归算法实现?简要讲述。的主要内容,如果未能解决你的问题,请参考以下文章