——2017.12.22
1. 順序查詢
a) 建立哨兵
2. 二分法查詢(binary search)
a) 有序連續儲存在陣列
b) 邊界錯位 if(left>right)查詢失敗
c) 時間複雜度logn
1. 判定樹上每個結點需要查詢次數剛好為該結點所在層數
2. 查詢成功時查詢次數不會超過判定樹的深度
3. asl(平均查詢次數)asl=(該層個數*該層查詢次數)/總元素個數1. n個結點構成的有限集合,當n=0,稱為空樹
2. 非空數具有以下性質
a) 樹中有個稱為根的特殊結點,用r表示
3. 子樹是不相交,除了根結點外,每個結點有且僅有乙個父結點,一課n個結點的樹有n-1條邊
1. 鍊錶
2. 兒子兄弟表示法
1. 二叉樹的子樹有左右順序之分
2. 特殊二叉樹:
a) 斜二叉樹
b) 完美二叉樹/滿二叉樹
c) 完全二叉樹
1. 乙個二叉樹第i層最多結點數:2的i-1次,
2. 深度為k的二叉樹有最大結點總數為:2的k次-1
3. 利用邊列等式n0為葉,n1為度為一的結點,n2為度為二的結點
1. 操作集:
a) 判斷是否為空
b) 遍歷(按某個順序訪問每個結點)
c) 建立乙個二叉樹
2. 常用的遍歷方法
a) 先序遍歷(preorder)——根、左子樹、右子樹
b) 中序遍歷(inorder)——左子樹、根、右子樹
c) 後序遍歷(postorder)——左子樹、右子樹、根
d) 層次遍歷(levelorder)——從上到下,從左到右
1. 順序儲存結構
2. 鍊錶儲存
1. 先序遍歷
2. 中序遍歷
3. 後序遍歷
4. 先序遍歷 中序遍歷 後序遍歷過程中所經過的結點路線一樣,只是訪問各結點的時機不同
5. 二叉樹的非遞迴遍歷
a) 非遞迴遍歷演算法,基本思路:使用堆疊
6. 層序遍歷
a) 二叉樹遍歷的核心問題:二維結構的線性化
1. 左小右大1. 平衡因子(balance factor,簡稱bf)bf(t)=左子樹高度-右子樹高度差
2. 任意結點左右子樹高度差的絕對值不超過1
3. 平衡二叉樹的最小結點數
4. 平衡二叉樹的調整
a) 右單旋(rr旋轉)——麻煩結點是發現者的右子樹的右子樹
b) 左單旋(ll旋轉)——麻煩結點是發現者的左子樹的左子樹
c) 左右旋轉——麻煩結點是發現者的左子樹的右子樹
d) 右左旋轉——麻煩結點是發現者的右子樹的右=左子樹
1. 什麼是哈弗曼樹/最優二叉樹(huffman tree)
a) 最小帶權路徑長度(wpl)的二叉樹
2. 哈弗曼樹的構造
a) 每次把權值最小的兩顆二叉樹合併
3. 哈弗曼樹的特點
a) 沒有度為1的結點
b) n個椰子結點的哈弗曼樹共有2n-1個結點
c) 哈弗曼樹的任意非葉結點的左右子樹交換後仍是哈弗曼樹
4. 哈夫曼編碼
資料結構筆記 樹
一 樹的定義樹 n n 0 個結點的有限集合。當n 0時,稱為空樹 任意一棵非空樹滿足以下條件 有且僅有乙個特定的稱為 根的結點 當n 1 時,除根結點之外的其餘結點被分成m m 0 個 互不相交 的有限集合t1 t2,tm 其中每個集合又是一棵樹,並稱為這個根結點的子樹。樹的定義是採用遞迴方法。二...
資料結構筆記(樹)
經過線性表 包括幾種特殊的線性表 的學習,對資料的儲存和處理已經有了初步認識,關於樹的邏輯結構學習有總結如下 一 樹的定義 採用遞迴方法 樹 n n 0 個結點的有限集合。當n 0時,稱為空樹 任意一棵非空樹滿足以下條件 1 有且僅有乙個特定的稱為根的結點 2 當n 1時,除根結點之外的其餘結點被分...
資料結構筆記8 樹
樹的定義 在樹中通常將資料元素成為結點。樹 n n 0 個結點的有限集合。當n 0時,稱為空樹。任意一棵非空樹滿足以下條件 有且僅有乙個特定的稱為根的結點 當n 1時,除根結點之外的其餘結點被分成m m 0 個互不相交的有限集合t1,t2,tm,其中每個集合又是一棵樹,並稱為這個根結點的子樹。樹的基...