占用連續的儲存空間,邏輯相鄰儲存位置也相鄰,元素之間的邏輯關係蘊含
雙親儲存
每個節點除資料外還需要乙個值來儲存雙親所在位置
struct tree
;
占用不一定連續的儲存空間,元素之間的邏輯關係需要附加指標域
孩子鏈儲存
每個節點除資料外還需要一些鏈來指向孩子,由於每個結點的兒子數量可能發生很大變化,浪費太多空間,所以這種方法一般不可行(除了孩子數確定的二叉樹,三叉樹等等,但這樣還是會可能造成浪費)
struct tree
;
孩子兄弟鏈儲存
乙個指標指向第乙個孩子,乙個指標指向下乙個兄弟姐妹
struct tree
;
順序儲存結構
比如乙個節點下標為i,他的左孩子在下標為2
i+1處,右孩子在2i+2(假設陣列0位置不訪問),假如只有乙個孩子,同樣也需要 「虛的」 構建出來
鏈式儲存結構
每個節點除資料外還需要一些鏈來指向孩子
struct btree
;
由括號表示法生產樹
安排根節點
『( 』進棧乙個元素 並準備給他安排左孩子 『 ,』進棧乙個元素並準備給他安排右孩子 『 )』孩子安排完了出棧 遇到字元安排節點以及是top的哪個孩子
插入不存在返回null,存在返回物件,都不行在左子樹找,假如返回不是null(說明找到了)返回他,假如是null,返回右子樹尋找結果
二叉樹 滿二叉樹與完全二叉樹
二叉樹 binary tree 是n n 0 個元素的有限集合,該集合為空或者為由乙個稱為 根 的元素及兩個不相交的 被分別稱為左子樹和右子樹的二叉樹組成 二叉樹的基本特點 每個結點最多有兩棵子樹 左子樹和右子樹是有順序的,且不可顛倒 圖一1 結點 二叉樹中的每乙個元素都稱為結點。通常二叉樹的許多名...
樹與二叉樹
樹是一類重要的非線性資料結構,是以分支關係定義的層次結構 定義 樹 tree 是n n 0 個結點的有限集t,其中 n 0時為空樹 n 0時,有且僅有乙個特定的結點,稱為樹的根 root 當n 1時,其餘結點可分為m m 0 個互不相交的有限集t1,t2,tm,其中每乙個集合本身又是一棵樹,稱為根的...
樹與二叉樹
建立 先序二叉樹,中序二叉樹,後序二叉樹。給定兩種遍歷序列 前序中序或後序中序 重塑二叉樹 遍歷 判斷乙個節點是否存在於二叉樹中 二叉樹的遍歷 先序,中序,後序 遞迴 非遞迴 層次遍歷 從上到下或從下到上列印 zigzag遍歷方式層次遍歷 二叉樹性質 二叉樹中葉子節點的個數 二叉樹第k層節點數目 二...