二叉樹為非線性資料結構
可以用鍊錶或者陣列來表示
鍊錶 data:本節點資料 left:左子節點 right:右子節點
陣列 1
2 3
4 5 7
放到陣列裡可表示為 1 2 3 4 5 7 (中間空一位,因為3沒有左子節點)
若每乙個子葉都有結構 叫滿二叉樹
若節點下標 與陣列表示下標相吻合 則可稱為 完全二叉樹
關於二叉樹的遍歷 可分為深度與廣度兩種
深度遍歷: 前序遍歷 中序遍歷 後序遍歷
(個人理解 乙個根節點 兩個子節點 1,2,3
屬於哪個排序 主要看根節點 1 的放置位置
前序排序:123
中序排序:213
後序排序:231
深度遍歷可用鏈式資料結構 遞迴完成 也可以用棧的資料結構來完成
廣度遍歷: 層序遍歷
按照樹形結構每一層的左到右的順序 排序
可用佇列的結構來完成
queue add/offer remove/poll 都是佇列的增加刪除方法 不同的是 前者會丟擲異常 後者返回空值
二叉樹的一些簡單演算法(一)
二叉樹的一些簡單演算法 一 由於最近資料結構學到了樹的這一章節,而二叉樹的演算法一直被各大公司視為必考內容,因此,身為小菜菜的我也決定寫幾篇關於二叉樹的演算法 這次我簡單的寫一下二叉樹的建立和遍歷演算法 include using namespace std typedef char t class...
關於二叉樹的一些問題
tips 關於二叉樹的絕大多數問題都可以用遞迴方法來實現,dfs。一位二叉樹根節點去掉之後又分為兩個子樹,對於子樹本身也可以看左二叉樹來處理。所以遞迴可以說很好用了 二叉樹的建立 public class bittree public bittree int data public static b...
二叉樹的一些概念
1 滿二叉樹 樹內的任何結點,或為樹葉 圖1中2689 或有兩個非空子樹。滿二叉樹定理 非空滿二叉樹樹葉的數目等於其分支結點數目加1。此外,乙個二叉樹第i層 根節點為0層 最多能有2的i次方個結點。圖12 平衡二叉樹 如果樹中任何結點的兩個子樹高度差是0或者1。對於圖1來說結點1左子樹高度為1,右子...