4 樹 樹的表示

2021-08-03 07:05:54 字數 1240 閱讀 5136

根據某個給定關鍵字k,從集合r中找出關鍵字與k相同的記錄

int sequentialsearch(statictable *tbl, elementtype k) 

return -1;

}

順序查詢演算法的時間複雜度為o(

n)假設n個資料元素的關鍵字滿足有序(比如:小到大)

k_1 \le k_2 \le ... \le k_n
並且是連續存放(陣列),那麼可以進行二分查詢

**實現

int binarysearch(statictale *tbl, elementtype k) 

return notfound; // 查詢失敗,返回-1

}

二分查詢演算法具有對數的時間複雜度o(

logn

) 二分查詢判定樹

進行二分查詢的時候,元素會構成乙個二分查詢判定樹:

* 判定樹上每個結點需要的查詢次數剛好為該結點所在的層數

* 查詢成功時查詢次數不會超過判定樹的深度

* n個結點的判定樹深度為[l

ogn2

]+1

結點的度(degree):結點的子樹個數

樹的度:樹的所有結點中最大的度數

葉結點(leaf):度為0的結點

父節點(parent):有子樹的結點是其子樹的根結點的父結點

子結點(child):若a結點是b結點的父結點,則稱b結點是a結點的子結點。子結點也稱孩子結點

兄弟結點(sibling):具有同一父結點的各結點彼此是兄弟結點

路徑和路徑長度:從結點n1

到nk的路徑為乙個結點序列n1

,n2,

...,

nk,ni

是ni+1

的父結點。路徑所包含邊的個數為路徑的長度

祖先結點(ancestor):沿樹根到某一結點路徑上的所有結點都是這個結點的祖先結點

子孫結點(descendant):某一結點的子樹中所有結點是這個結點的子孫

結點的層次(level):規定根結點在1層,其它任一結點的層數是其父結點的層數加1

樹的深度(depth):樹中所有結點中的最大層次是這棵樹的深度

樹和樹的表示

part1 樹 在現實生活中,有很多具有層次的關係。層次管理具有很高的效率。在計算機中也是一樣,樹就實現了計算機中的層次,在查詢修改資訊方面提供了很大的方便。之前在學習離散數學時已經對樹有了了解,所以這裡理解起來很容易。樹的定義 n n 0 個結點構成的有限集合。當n 0時,稱為空樹。對於任意一棵非...

樹的表示方法

順序儲存 查指定結點的雙親方便,指定結點的孩子則需要從頭遍歷 根節點固定儲存在0,且 1表示沒有雙親 define max tree size 100 typedef struct ptnode typedef struct ptree 順序 鏈式儲存 struct ctnode typedef s...

資料結構 樹 樹的表示

樹狀圖是一種資料結構,它是由n n 1 個有限結點組成乙個具有層次關係的集合。把它叫做 樹 是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點 每個結點有零個或多個子結點 沒有父結點的結點稱為根結點 每乙個非根結點有且只有乙個父結點 除了根結點外,每個子結點可以分為多個不...