• 沒有找到結果。

樹狀結構的表示法

N/A
N/A
Protected

Academic year: 2021

Share "樹狀結構的表示法"

Copied!
14
0
0

加載中.... (立即查看全文)

全文

(1)

樹狀結構的表示法

資料結構

鍾宜玲

(2)

資料結構 鍾宜玲 高立圖書(51232) 2

串列表示法

樹狀結構可以用串列來表示,則下圖為:

(A (B (D, E, F), C))

A B D C E F

(3)

鏈結串列表示法

(a)節點欄位數不固定 A B D C E F A B C NULL F NULL E NULL D NULL (b)節點欄位數固定 A NULL B C NULL NULL F NULL E NULL D NULL NULL

(4)

二元樹 (

BINARY

TREE)

空樹或由樹根 (root)、左子樹 (left subtree) 或右子樹 (right subtree)

組成,其左、右子樹也是二元樹。

二元樹中任一節點的分支度不會超過2,且二元樹的節點個數可

以是0,但一般樹不可以。

A B D C I H J E K F (a) 二元樹 A B A B (b) 含兩節點的兩棵不同的二元樹

(5)

特殊二元樹

斜曲樹 (skewed tree)

二元樹其節點皆向左斜曲或向右斜曲,稱為左斜曲樹或右斜曲樹。

A B C D E A B C D E

(6)

完全二元樹 (FULL BINARY TREE)

8 9 10 11 12 13 14 15 4 5 6 7 2 3 1 高度為4的完全二元樹

高深度k的二元樹,具有 2

k

- 1 個節點個數

(7)

完整二元樹 (COMPLETE BINARY TREE)

n個節點高度為k的二元樹,若與高度k的完全二元樹其前n個

節點編號一一對應,則為完整二元樹 (complete binary tree)。

8 9 10

4 5 6 7

2 3

1

(8)

(1)

(2)高度為5的完整二元樹最少有16個節點。

8 9 10 11 12 13 14 15 4 5 6 7 2 3 1 16 畫出高度為6的右斜曲樹

(9)
(10)

二元樹的表示法

陣列表示法

樹根儲存於陣列索引值1的位置

對於編號 i 的節點p

若左兒子存在,則左兒子節點的編號為2i。

若右兒子存在,則右兒子節點的編號為 2i + 1。

若節點p不為樹根節點,則節點p的父親節點編號為 [ i / 2 ] ( 即 i 除以

2取整數的商 )。

(11)

二元樹的陣列表示法

編號4的節點D的右兒子編號為 4 * 2 + 1 = 9

編號6的節點E為左兒子編號為12

編號25的節點J其父親節點編號為 [25 / 2] = 12。

[1] A [2] B [3] C [4] D [5] [6] E [7] F [8] [9] G : : [12] H [13] I : : [25] J A B D C F E H I G J 9 12 13 4 6 7 2 3 1 25

(12)

[1] A [2] B [3] C [4] D [5] E [6] F [7] G [8] H [9] I A B D C G F I 9 4 6 7 2 3 1 H 8 E 5

二元樹的陣列表示法

9個節點的完整二元樹 

陣列儲存完整二元樹時最節省記憶體空間,儲存斜曲

樹時最浪費記憶體空間。

若要插入或刪除資料需要大量移動資料。

高度為5的右斜曲樹 A B C D E 1 3 7 15 31 [1] A [2] [3] B : : [7] C : : [15] D : : [31] E

(13)

鏈結表示法

節點有資料欄data及兩個指標left、right,則節點結構定

義如下:

data 節點 left right

typedef struct tnode{

char data;

struct tnode *left;

struct tnode *right;

} TNODE;

節點結構 tnode

(14)

二元樹的鏈結表示法

A B D C G F I H E 9個節點的完整二元樹 A E C B F G D I H

NULL NULL NULL NULL

參考文獻

相關文件

Nonreciprocal Phenomena in Chiral Materials - Left and Right in Quantum Dynamics –..

1、箭線圖Arrow Diagramming Method (ADM) Activity on Arrow (AOA). 2、結點/節圖Precedence Diagramming

ƒ 提供 Connection Oriented (連結導向) 並達成End-to- End (兩端通訊端點對端點) Process-to-Process (程序對 程序)、Reliable Data Delivery

時值/節奏 力度 速度 音色 織體 和聲 調性

left

Segmented Bushy Path 分為兩個步驟,第一個步驟是文件結構的切割 (Text Segmentation),也就是分析文件內容並將文件內容切割成幾個具有代 表的結構。Text Segmentation

 試著將投影片第 12 頁的範例加上 critical section ,解決 race

• (語文)術語學習 無助學生掌握有關概念,如 果教師只灌輸術語的定義,例如何謂「動