二叉树的中序遍历,该怎么解决
程序员文章站
2022-04-27 17:08:24
...
二叉树的中序遍历
假设二叉树的结构如下面的数组,数组下标0为根节点,1为左孩子节点,2为右孩子节点。前序遍历我已经实现,现在我希望能够中序遍历这个二叉树,希望大家给出好的方法。
PS(另求一个能下载英文学术论文的网站,毕设英文翻译需要用到,我从谷歌学术上面找的PDF版很不清晰,不知道有没有其他网站可以下载,希望大家能够推荐)
------解决方案--------------------
你给出的二叉树表示的不严密,每个节点宜用关联数组而不是下标数组表示
好在你的树是满的,不然极易产生误解
你的每个节点的下标分别表示
0 根 1 左孩子 2 右孩子
由二叉树遍历的定义,有
前序 -+a*b-cd/ef
中序 a+b*c-d-e/f
后序 abcd-*+ef/-
假设二叉树的结构如下面的数组,数组下标0为根节点,1为左孩子节点,2为右孩子节点。前序遍历我已经实现,现在我希望能够中序遍历这个二叉树,希望大家给出好的方法。
//二叉树结构
$array=array("-",array("+",array("a"),array("*",array("b"),array("-",array("c"),array("d")))),array("/",array("e"),array("f")));
echo "";";
print_r($array);
echo "
//前序遍历代码
function bianli($array){
foreach($array as $value){
if(is_array($value)){
bianli($value);
}else{
echo $value;
}
}
}
echo bianli($array);
PS(另求一个能下载英文学术论文的网站,毕设英文翻译需要用到,我从谷歌学术上面找的PDF版很不清晰,不知道有没有其他网站可以下载,希望大家能够推荐)
------解决方案--------------------
你给出的二叉树表示的不严密,每个节点宜用关联数组而不是下标数组表示
好在你的树是满的,不然极易产生误解
你的每个节点的下标分别表示
0 根 1 左孩子 2 右孩子
由二叉树遍历的定义,有
/* 前序遍历 */
function DLR($F) {
if(isset($F[0])) echo $F[0];
if(isset($F[1])) DLR($F[1]);
if(isset($F[2])) DLR($F[2]);
}
/* 中序遍历 */
function LDR($F) {
if(isset($F[1])) LDR($F[1]);
if(isset($F[0])) echo $F[0];
if(isset($F[2])) LDR($F[2]);
}
/* 后序遍历 */
function LRD($F) {
if(isset($F[1])) LRD($F[1]);
if(isset($F[2])) LRD($F[2]);
if(isset($F[0])) echo $F[0];
}
前序 -+a*b-cd/ef
中序 a+b*c-d-e/f
后序 abcd-*+ef/-
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
推荐阅读
-
Python利用前序和中序遍历结果重建二叉树的方法
-
CAD图纸中的虚线过密该怎么解决?
-
win10系统中Windows Defender自动删除下载的文件该怎么解决?
-
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
-
[PHP] 算法-根据前序和中序遍历结果重建二叉树的PHP实现
-
【算法】二叉树的前序、中序、后序、层序遍历和还原。
-
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
-
tree traversal (树的遍历) - 中序遍历 (inorder traversal) - 二叉树的中序遍历
-
二叉树的先序遍历、中序遍历、后序遍历
-
JavaScript实现二叉树的先序、中序及后序遍历方法详解
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论