请输入您要查询的百科知识:

 

词条 中序遍历
释义

中序遍历(LDR)中序遍历也叫做中根遍历,可记做左根右。

中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树。即:

若二叉树为空则结束返回,

否则:

(1)中序遍历左子树。

(2)访问根结点。

(3)中序遍历右子树。

注意的是:遍历左右子树时仍然采用中序遍历方法。

即左子树(B D E)还是左边开始(D),然后是(B),再是右边(E),完后经过(A),接着右子树(C F) 还是左边开始(F),再是中间(C),

即顺序是DBEAFC

中序遍历的时间复杂度为:O(n)。

如果一颗二叉排序树的节点值是数值,中序遍历的结果为升序排列的数组。可以利用该性质检测一棵树是否为二叉排序数。

程序实现

c++版本

树中节点结构为:

typedef struct TreeNode

{

int data;

TreeNode * left;

TreeNode * right;

TreeNode * parent;

}TreeNode;

void middle_order(TreeNode * Node)

{

if(Node != NULL)

{

middle_order(Node->left);

printf("%d ", Node->data);

middle_order(Node->right);

}

}

调用时: middle_order(Root); //Root为树的根

Java版本

class TreeNode{

public int data;

public TreeNode leftChild;

public TreeNode rightChild;

public static void inOrderTraversal(TreeNode node){

if(node == null){

return;

}else{

inOrderTraversal(node.leftChild);

System.out.println(node.data);

inOrderTRaversal(node.rightChild);

}

}

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 22:59:33