樹的三種常用鍊錶結構
1.雙親表示法
#define max_tree_size 100
typedef struct ptnodeptnode;
typedef structptree;
parent(t,x)尋找雙親結點在常量時間內完成。
2.孩子表示法
typedef struct ctnodectnode,*childptr;
typedef struct ctboxctbox;
typedef structctree;
可以結合雙親表示法和孩子表示法一起使用,在孩子表示法中,增加雙親域。
3.孩子兄弟表示法
typedef struct csnodecsnode,*cstree;
同樣也可以為其增加parent域。
森林與二叉樹的轉換:
轉換原則,把森林中第二棵樹的根節點看作是第一棵樹的根結點的兄弟,放置在其右子樹上。
資料結構 樹與森林 雙親表示法
以一組連續空間儲存結點,各結點附設指示器指示其雙親結點的位置 資料域加雙親下標域 首先是輔助巨集 define ok 1 define error 0 define true 1 define false 0 define overflow 1 define underflow 2 define n...
C語言實現實現樹和森林(孩子兄弟表示法)
因為樹和森林都可以與二叉樹相互轉化,所以採用二叉鍊錶的儲存方式表示樹和森林容易在計算機中實現 共有10個節點,則有11個空指標 fristchild指向該結點的第乙個孩子節點,nextsibling指向該結點的兄弟節點。雖然類似於二叉樹的左右孩子節點指標,但是功能不同 define elemtype...
樹的括號表示法
樹的括號表示法 時 限 1000 ms 記憶體限制 3000 k 總時限 3000 ms 描述 樹的括號表示法 先將根結點放入一對圓括號中,然後把它的子樹按由左而右的順序放入括號中,而對子樹也採用同樣方法處理 同層子樹與它的根結點用圓括號括起來,同層子樹之間用逗號隔開,最後用閉括號括起來。例如下圖可...