二叉樹遍歷

2021-08-17 05:59:29 字數 1116 閱讀 3035

二叉樹遍歷主要分為深度遍歷與廣度遍歷,其中深度遍歷運用到的資料結構為棧,而廣度優先運用的資料結構為佇列。其中深度優先遍歷又分為前序遍歷,中序遍歷以及後續遍歷,廣度優先又叫做層次遍歷。

一  深度優先遍歷                                  

1.前序遍歷 :a-b-d-f-g-h-i-c(根左右)

2.中序遍歷:f-d-h-g-i-b-e-a-c(左根右)

3.後序遍歷:f-h-i-g-d-e-b-c-a(左右根)

口訣可以總結出根的位置隨著前中後,分別在第1,2,3的位置

4.遞迴實現遍歷

//先序遍歷的遞迴實現

public class preorder(treenode root)

}

//中序遍歷的遞迴實現

public class midorder(treenode root)

}

//後序遍歷的遞迴實現

public class laterorder(treenode root)

}

5 非遞迴實現遍歷

//先序遍歷的非遞迴實現

public class preorder(treenode t)

if(!s.empty())}}

//中序遍歷的非遞迴實現

public class midorder(treenode t)

if(!s.empty())}}

5  非遞迴實現遍歷

二  廣度優先遍歷

廣度優先是按照二叉樹的每一層順序輸出,如圖按照廣度優先遍歷結果為a-b-c-d-e-f-g-h-i

**如下

public static class bfs(treenode root)

if(now.right!=null)}}

}

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...

二叉樹遍歷

二叉樹的遍歷非常重要,但對已一棵比較複雜的樹,要寫出它的先 中 後序遍歷,往往不是那麼簡單,也很容易犯錯。這裡介紹一種比較直觀且不容易犯錯的方法。對於圖1所示的二叉樹,要寫出它的先 中 後序遍歷,往往很容易出錯。圖 1 其實,我們可以用圖2中的紅線描畫出二叉樹的輪廓。圖 2 而對於樹上的每乙個節點,...

二叉樹遍歷

描述 華為實習生招聘,有一道類似如下的題目 給出二叉樹,如圖1所示 圖 1 二叉樹 要求給出中序遍歷的結果。下面分別就前序遍歷 中序遍歷 後序遍歷進行分析。規律 前序遍歷 根在前 子樹在根後且左子樹比右子樹靠前 中序遍歷 根在中 左子樹在根左邊,右子樹在根右邊 後序遍歷 根在後 子樹在根前且左子樹比...