久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 樹的存儲結構

樹的存儲(chu)結(jie)構(gou) 時間:2018-09-27      來源:未知

1.樹的存儲結構:

(1)雙親表(biao)示法

是一種順序保存(cun)方(fang)法,即用(yong)數(shu)組存(cun)儲。

每個(ge)結點有兩個(ge)域(yu):

data是(shi)結點的(de)數(shu)據元素;

parent是指(zhi)出該結(jie)點(dian)的雙(shuang)親結(jie)點(dian)在數組中的下標;

本文引用地址://fsbing.cn/emb/Column/7465.html

樹的雙親(qin)表示法說明:

#define MAX-TREE-SIZE 100

typedef struct PTNode{

ElementType data;

int parent; // 該結點的雙親的下標

} PTNode;

typedef struct {

PTNode nodes[MAX-TREE-SIZE];

int n; //樹的(de)結點(dian)數

} PTree;

例子:使用(yong)雙(shuang)親法存儲(chu)森林(lin)

(2)孩子(子女)表示法

typedef struct CTNode { //孩子結(jie)點(表結(jie)點)

int child;

struct CTNode *next;

} *ChildPtr;

tyPedef struct { //頭(tou)結點

TElemType data;

ChildPtr firstchild;

}CTBox;

typedef struct { //孩(hai)子(zi)鏈表(biao)頭指針

CTBox nodes[MAX_TREE_SIZE];

int n,r; //結點數和根(gen)的位置;

}CTree;

帶雙親(qin)的孩子(zi)鏈表存儲(chu)表示(shi)

typedef struct CTNode { //孩子結點(表(biao)結點)

int child;

struct CTNode *next;

} *ChildPtr;

typedef struct{ //頭結點

TElemType data; int parent;

ChildPtr firstchild;

}CTBox;

typedef struct { //孩子鏈表頭指針

CTBox nodes[MAX_TREE_SIZE];

int n,r; //結點數和根的位(wei)置;

}CTree;

(3)孩子兄弟表示(shi)法(也稱二(er)叉樹表示(shi)法或(huo)二(er)叉鏈表表示(shi)法)

結點結構(CSNode):

firstchild:指向該結(jie)點的第一(yi)個孩子

nextsibling:指向該結點的下一個兄弟

typedef struct CSNode {

TElemType data;

struct CSNode * firstchild, * nextsihling;

}CSNode,*CSTree;

例子:用孩子兄弟法存儲樹

2.樹與森林的遍歷

樹的遍(bian)歷(li):按(an)根(gen)的次序區分有(you)兩(liang)種(zhong)遍(bian)歷(li)次序

(1)先根序遍歷(li):

 若樹(shu)非空,則訪問(wen)根(gen)節點;從左(zuo)到右根(gen)遍歷根(gen)的(de)每(mei)棵子樹(shu);

遍歷上面(mian)的樹:A B E C F D G H I J

(2)后根(gen)遍歷:

若(ruo)樹非(fei)空,則從左到右后根序遍歷根的每(mei)棵子樹;訪問根結點;

遍歷上面的樹:E B F C H I J G D A

森林的遍歷:

森林的(de)(de)遍歷是基于樹的(de)(de)遍歷完成的(de)(de),對應有兩種(zhong)遍歷次(ci)序

(1)先序遍歷

訪(fang)問第一棵樹的(de)根;

先序遍(bian)歷第一棵(ke)樹中的根結點的子樹森林;

先序遍歷其(qi)余的樹所構成的森林;

(2)中序遍(bian)歷

中序(xu)遍歷第(di)一棵樹的子樹;

訪問(wen)第一棵樹的根;

中序(xu)遍歷其余的樹(shu)構成的森林;

3.森林與二叉樹的轉換

在(zai)森林與(yu)二叉樹之間(jian)存在(zai)一(yi)一(yi)對(dui)應的關系(xi)

(1)森林=>二叉樹的(de)轉(zhuan)換

自然轉(zhuan)(zhuan)換法:凡是兄弟用(yong)線(xian)連(lian)起來,然后去(qu)掉雙(shuang)(shuang)親到子女的(de)連(lian)線(xian),但(dan)保留雙(shuang)(shuang)親到其第一子女的(de)連(lian)線(xian),后轉(zhuan)(zhuan)45度。

(2)二(er)叉樹=>森林的轉換

自然轉換法:

若(ruo)某結點是(shi)其雙親(qin)的左孩(hai)子(zi)(zi)(zi),則該結點的右孩(hai)子(zi)(zi)(zi)、右孩(hai)子(zi)(zi)(zi)的右孩(hai)子(zi)(zi)(zi)...,都是(shi)與(yu)該結點的雙親(qin)連接起(qi)來,后去掉所有雙親(qin)到右孩(hai)子(zi)(zi)(zi)的連線。

上一篇:Linux下字符設備驅動

下一篇:C語言中常用預處理指令

熱點(dian)文(wen)章推薦
華清(qing)學員(yuan)就業榜單
高薪學員(yuan)經驗分享
熱點新(xin)聞推薦(jian)
前(qian)臺專線:010-82525158 企業(ye)培訓洽談專(zhuan)線:010-82525379 院校合作洽談專線(xian):010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部