数据结构课上笔记13
生活随笔
收集整理的這篇文章主要介紹了
数据结构课上笔记13
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
樹存儲結(jié)構(gòu)
?
父節(jié)點(diǎn)表示法
?
數(shù)據(jù)域:存放結(jié)點(diǎn)本身信息。
雙親域:指示本結(jié)點(diǎn)的雙親結(jié)點(diǎn)在數(shù)組中的位置。
對應(yīng)的樹:
/* 樹節(jié)點(diǎn)的定義 */ #define MAX_TREE_SIZE 100typedef struct{TElemType data;int parent; /* 父節(jié)點(diǎn)位置域 */ } PTNode;typedef struct{PTNode nodes[MAX_TREE_SIZE];int n; /* 節(jié)點(diǎn)數(shù) */ } PTree;特點(diǎn):找雙親容易,找孩子難。
孩子表示法(樹的鏈?zhǔn)酱鎯Y(jié)構(gòu))
?
childi指向一個結(jié)點(diǎn)
可以加上parent。
在有 n 個結(jié)點(diǎn)、度為 ?d 的樹的 d 叉鏈表中,有 ?n×(d-1)+1 個空鏈域
?
我們可以用degree記錄有幾個孩子,省掉空間,但是結(jié)點(diǎn)的指針個數(shù)不相等,為該結(jié)點(diǎn)的度 degree。
?
孩子鏈表:
?
把每個結(jié)點(diǎn)的孩子結(jié)點(diǎn)排列起來,看成是一個線性表,用單鏈表存儲,則 n 個結(jié)點(diǎn)有 n 個孩子鏈表(葉子的孩子鏈表為空表)。而 n 個頭指針又組成一個線性表,用順序表(含 n 個元素的結(jié)構(gòu)數(shù)組)存儲。
孩子兄弟表示法(二叉樹表示法)
用二叉鏈表作樹的存儲結(jié)構(gòu),鏈表中每個結(jié)點(diǎn)的兩個指針域分別指向其第一個孩子結(jié)點(diǎn)和下一個兄弟結(jié)點(diǎn)
typedef struct CSNode{ElemType data;struct CSNode *firstchild, *nextsibling; } CSNode, *CSTree;?
總結(jié)
以上是生活随笔為你收集整理的数据结构课上笔记13的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode7 整数反转
- 下一篇: leetcode303 区域和检索