資料結構學習之樹 (一) 樹的表示方法

2021-06-22 20:54:11 字數 1088 閱讀 2748

樹的三種表示方法:

一:雙親表示法

/*

雙親表示法

*/ #define maxn_tree_size 100

typedef int telemtype;//資料型別

typedef structptnode;

typedef structptree;

根節點的雙親可以初始為-1
場景一:如果要找孩子可以在ptnode結構體中加左邊孩子的起始位置,如果沒有孩子就定義為-1;

場景二:如果要找孩子的兄弟可以在ptnode結構體中加孩子右兄弟的位置,沒有就定義為-1;

場景三:場景一+場景二

二:孩子表示法

概念:把每個結點的孩子結點排列起來,以單鏈表作儲存結構,則n個孩子就有n個孩子鍊錶,如果是葉子鍊錶則此鍊錶為空,然後n個頭指標又組成了乙個線性表,採用順序儲存結構,存放進乙個陣列中;

/*孩子表示法

*/ #define maxn_tree_size 100

typedef int telemtype;//資料型別

typedef struct ctnode *childptr;

typedef struct ctbox;

typedef structctree;

場景一:如果要知道孩子的雙親,可以在ctbox結構體中加乙個雙親的位置;(想一想為什麼只有乙個場景:因為對孩子表示法來講找兄弟很方便)這一種方法又叫孩子雙親表示法

三:(孩子)兄弟表示法

概念:任意一棵樹,它的結點的第乙個孩子如果存在就是唯一的,如果它的右兄弟存在也是唯一的,因此我們可以設定兩個指標,分別指向該結點的第乙個孩子和右兄弟;

/*(孩子)兄弟表示法

*/#define maxn_tree_size 100

typedef int telemtype;//資料型別

typedef struct csnode csnode, *cstree;

場景一:如果要找雙親,可以加乙個指向雙親的指標;(此表示法最大的好處就是將一顆複雜的樹轉化為了二叉樹);

資料結構(一)樹

是由n 0 個結點組成的有窮集合以及結點之間關係組成的集合構成的結構,是一種一對多的資料結構。特點 1.有且僅有乙個結點沒有前驅結點,該結點為樹的根結點。2.除了根結點外,每個結點有且僅有乙個直接前驅結點。3.包括根結點在內,每個結點可以有多個後繼結點。樹的術語 1.結點的度 該結點擁有的子樹的數目...

資料結構學習 樹

樹結構是二叉樹的擴充套件,二叉樹在乙個節點上只有兩個子節點,而樹結構在乙個節點上不只有兩個,可以有n個,n大於等於0,更具有一般意義。二叉樹的概念同樣適用於樹,如完全數,滿樹等,此外還有 有序樹 結點的各子樹從左到右是有次序的,即若交換各子樹相對位置會構成不同的樹。無序樹 結點的各子樹從左到右是無次...

資料結構學習 樹

樹是n個結點的有限集合。n 0時稱為空樹,在任意一棵非空樹中 1 有且僅有乙個特定的稱為根的結點。2 當n 1時,其餘結點可以分為m個互不相交的有限集合,其中每乙個集合本身又是一棵樹。在此,我們主要來學習二叉樹的應用。結點擁有的子樹數稱為結點的度。度為0的結點稱為葉子結點或者終端結點。度不為0的結點...