資料結構 二叉樹的前中後序遍歷

2022-08-29 18:33:12 字數 1276 閱讀 2104

在電腦科學裡,樹的遍歷是指通過一種方法按照一定的順序訪問一顆樹的過程。

對於二叉樹,樹的遍歷通常有四種:先序遍歷、中序遍歷、後序遍歷、廣度優先遍歷。(前三種亦統稱深度優先遍歷)對於多叉樹,樹的遍歷通常有兩種:深度優先遍歷、廣度優先遍歷。

在學習前面三種深度優先遍歷之前,很有必要了解它們之間到底是怎麼遍歷的,要自己去親自去遍歷,不要只看文字

先序遍歷: 節點 - 左孩子 - 右孩子

中序遍歷: 左孩子 - 根結點 - 右孩子

後序遍歷 : 左孩子 - 右孩子 - 根結點

先序遍歷:3 1 2 5 4 6

中序遍歷:1 2 3 4 5 6

後序遍歷:2 1 4 6 5 3

首先我們來定義二叉樹的結點

public class bstree> 

}......

}

bstnode包含二叉查詢樹的幾個基本資訊:

(01) key -- 它是關鍵字,是用來對二叉查詢樹的節點進行排序的。

(02) left -- 它指向當前節點的左孩子。

(03) right -- 它指向當前節點的右孩子。

(04) parent -- 它指向當前節點的父結點。

若二叉樹非空,則執行以下操作:

(01) 訪問根結點;

(02) 先序遍歷左子樹;

(03) 先序遍歷右子樹。

**如下:

private void preorder(bstnodetree) 

}public void preorder()

若二叉樹非空,則執行以下操作:

(01) 中序遍歷左子樹;

(02) 訪問根結點;

(03) 中序遍歷右子樹。

**如下:

private void inorder(bstnodetree) 

}public void inorder()

若二叉樹非空,則執行以下操作:

(01) 後序遍歷左子樹;

(02) 後序遍歷右子樹;

(03) 訪問根結點。

**如下:

private void postorder(bstnodetree) 

}public void postorder()

(01) 前序遍歷結果: 3 1 2 5 4 6

(02) 中序遍歷結果: 1 2 3 4 5 6

(03) 後序遍歷結果: 2 1 4 6 5 3

資料結構 二叉樹的遍歷(前 中 後序遍歷)

改編自 挑戰程式設計競賽2 目標 用三種遍歷方式列印出樹 由於我想偷懶易於理解我就不注釋了 輸入樣例 90 1 4 1 2 3 2 1 1 3 1 1 4 5 8 5 6 7 6 1 1 7 1 1 8 1 1 輸出樣例 前序遍歷的結果是 0 1 2 3 4 5 6 7 8 中序遍歷的結果是 2 1...

資料結構 二叉樹的前 中 後序遍歷

遞迴實現前序遍歷 public static void preorderrecur node head system.out.println head preorderrecur head.left preorderrecur head.right 非遞迴實現前序遍歷 public static v...

二叉樹的前中後序遍歷

秋招記錄 對一棵二叉樹進行遍歷,我們可以採取3種順序進行遍歷,分別是前序遍歷 中序遍歷和後序遍歷。這三種方式是以訪問父節點的順序來進行命名的。假設父節點是n,左節點是l,右節點是r,那麼對應的訪問遍歷順序如下 前序遍歷 中左右 n l r 中序遍歷 左中右 l n r 後序遍歷 左右中 l r n ...