常見問題之 二叉樹的前中後層遍歷

2021-09-28 12:12:00 字數 1071 閱讀 6515

前序遍歷: a b d h i e j c f g

中序遍歷: h d i b j e a f c g

後序遍歷: h i d j e b f g c a

層次遍歷: a b c d e f g h i j

前序遍歷: 第一步:訪問根節點,第二步:先序遍歷根節點的左子樹;第三步:先序遍歷根節點的右子樹。

中序遍歷: 第一步:中序遍歷根節點的左子樹,第二步:訪問根節點; 第三步:中序遍歷根節點的右子樹。

後序遍歷: 第一步:後序遍歷根節點的左子樹;第二步:後序遍歷根節點的右子樹;第三步:訪問根節點。

ps:只有先序和後序遍歷是無法確定乙個準確固定乙個二叉樹的

在遞迴情況下,我們可以如此寫**

//前序遍歷

public void postorder(node localroot)

}//中序遍歷

public void postorder(node localroot)

}//後序遍歷

public void postorder(node localroot)

}

在非遞迴的情況下,我們借助stack的先進後出來實現遍歷

// 用非遞迴的方法進行先序遍歷

public void qinaxufeidigui(treenode treenode)

if(!stack.isempty())}}

// 用非遞迴的方法進行中序遍歷

public void zhongxufeidigui(treenode treenode)

if (!stack.isempty()) }}

// 用非遞迴的方法進行後序遍歷

public void houxufeidigui(treenode treenode)

boolean tag = true;

treenode prenode = null; // 前驅節點

while (!stack.isempty() && tag == true) else

} else }}

}``

二叉樹的前中後層遍歷

package com.data.tree public class bitree package com.data.tree classname treetest description todo author payphone date 2018年12月24日 下午1 44 07 version...

二叉樹的遍歷(前,中,後,層序)

二叉樹的遍歷是指從根節點出發,按照某種次序依次訪問二叉樹中所有節點,使得每個節點僅被訪問一次 前序遍歷 若二叉樹為空,則空操作返回,否則先訪問根節點,然後前序遍歷左子樹,再前序遍歷右子樹。結果是 abdghceif 中序遍歷 若樹為空,則空操作返回,否則從根節點開始 注意並不是先訪問根節點 中序遍歷...

二叉樹的前中後遍歷及層序遍歷

概念 二叉樹的遍歷是指從根結點出發,按照某種次序依次訪問二叉樹中的所有結點,使得每個結點被訪問一次且僅被訪問一次。樹遍歷的本質是將非線性結構線性化 深度優先遍歷 二叉樹的深度優先遍歷,分為如下三種 先左後右 廣度優先遍歷 與深度優先遍歷不同的是,廣度優先遍歷是先搜尋所有兄弟和堂兄弟結點再搜尋子孫結點...