資料結構 樹的學習 (1)

2021-08-02 01:26:25 字數 888 閱讀 4985

樹的概念:

樹是n(n>=0)個結點的有限集,n = 0 是稱為空樹,在任意一顆非空樹中:

1)有且僅有乙個特定的稱為根的結點,

2)當n>1時,其餘節點可分為m個互不相交的有限集,每個集合本身又是一棵樹,並且稱為根的子樹。

結點分類:

結點擁有的子樹數稱為結點的度。度為0的結點稱為葉結點或終端結點,度不為0的結點稱為非終端結點或分支結點,除根結點外,分支結點也稱為內部結點,樹的度是樹內各結點的最大值。

結點的層次從根開始定義起,根為第一層,根的孩子為第二層,

樹中結點的最大層次稱為樹的深度或高度。

森林是m顆互不相交的樹的集合。

樹的儲存結構;

1.雙親表示法:假設以一組連續空間儲存樹的結點,同時在每個結點中,附設乙個指示器指示其雙親結點在陣列中的位置。

雙親表示法的結點結構定義**:

#define maxsize 100

typedef int telemtype;

typedef struct ptnode

ptnode;

typedef struct      //樹結構

ptree;

根結點的位置域設定為-1;

改進:

增加乙個長子域,儲存最左邊的孩子的位置

typedef struct ptnode

ptnode;

如果乙個結點沒有孩子,長子域預設為-1;

如果很關注各兄弟間的關係,可以增加乙個右兄弟域來體現兄弟關係,結構如下:

typedef struct ptnode

ptnode;

說了這三種儲存結構是為了說明:儲存結構的設計是乙個非常靈活的過程,乙個儲存結構設計的是否合理,取決於基於該儲存結構的運算是否合適,是否方便,時間複雜度好不好等。

資料結構的學習 1

def func3 x if x 0 print x func3 x 1 deffunc4 x if x 0 func4 x 1 print x 輸出結果 43 21 1 234max 0 defhanoi n,a,b,c 統計移動的次數 global maxif n 0 max max 1 han...

資料結構(C)樹(1)

1.概念與性質 樹是一種非線性結構,與前面的鍊錶棧與佇列 線性結構 不同。樹 tree 是由n n 0 個節點構成的有限集合。當n 0,就為空樹。當n 0,必有乙個樹根 root 除了樹根,其餘的節點可以劃分為很多個子集,也叫子樹。樹的邊說有方向性的,只能從樹根指向某一節點,只能從上到下 有且只有一...

資料結構之樹的學習

在樹中,對於任意節點n,n的深度為從根節點到n的唯一路徑的 長。因此,根 的深度為零。n 的高度是從n到一片樹葉的最長路徑的長。因此所有的樹葉的高都是0一棵樹的高等於他的根的高.一顆樹的深度等於他的最深的樹葉的深度,該深度總是等於這棵樹的高.樹節點的宣告 typedef struct treenod...