内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

樹的存儲結(jié)構(gòu)-創(chuàng)新互聯(lián)

提到存儲結(jié)構(gòu),可以很自然的想到順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)兩種。樹這種數(shù)據(jù)結(jié)構(gòu)類型,它是由結(jié)點和聯(lián)接結(jié)點的邊構(gòu)成。這些邊,聯(lián)接了樹中的任意兩個結(jié)點,從計算機內(nèi)存中的存儲方式來看,其實,就是通過指針保存了地址,從而實現(xiàn)了兩個結(jié)點間的聯(lián)接。

目前累計服務(wù)客戶上千家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗。以網(wǎng)站設(shè)計水平和技術(shù)實力,樹立企業(yè)形象,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、網(wǎng)站策劃、網(wǎng)頁設(shè)計、網(wǎng)絡(luò)營銷、VI設(shè)計、網(wǎng)站改版、漏洞修補等服務(wù)。成都創(chuàng)新互聯(lián)始終以務(wù)實、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領(lǐng)先技術(shù)的掌握、對創(chuàng)意設(shè)計的研究、對客戶形象的視覺傳遞、對應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進步。

  那么關(guān)于樹的表示方式,先講一下最簡單的,就是雙親表示法,我把它稱之為父節(jié)點表示法。畢竟,在樹中,雙親結(jié)點其實就是父節(jié)點。既然,鏈表也是有結(jié)點構(gòu)成,那么,這個結(jié)點中,必然的必須得有能夠存放數(shù)據(jù)的變量,以及存放下一個結(jié)點的地址的變量,如果沒有這個變量,如何建立兩個結(jié)點間的聯(lián)接呢?但是,此時,這個存放的地址的變量,并不是存放下一個結(jié)點的地址,存放的是它的父節(jié)點的地址,也就是父節(jié)點在數(shù)組中的下標位置。然后還得再定義一個樹結(jié)構(gòu),這個數(shù)結(jié)構(gòu)中,必須得包含一個數(shù)組,因為數(shù)組就是用來表示結(jié)點的,還得有一個根節(jié)點的位置變量以及結(jié)點數(shù)的變量。那么,該結(jié)構(gòu)定義如下:

#define MAX_TREE_SIZE  100
typedef int TElemType;
typedef struct PTNode{

    TElemType data;
    int parent;
}PTNode;

typedef struct{

    PTNode nodes[MAX_TREE_SIZE];
    int r, n;
}PTree;

因為,根節(jié)點就是祖先,所以它沒有父類,所以,約定,根節(jié)點的位置域設(shè)置為-1。

樹的存儲結(jié)構(gòu)

如上圖所示,結(jié)點A就是根結(jié)點。

下標    data    parent
 0        A        -1
 1        B        0
 2        C        0
 3        D        0
 4        E        1
 5        F        1
 6        G        1
 7        H        2
 8        I        3
 9        J        3

因為B的父親是A,所以B中存放了A的下標0,C和D的父親都是A,所以都存放了下標0,E、F和G的父親是B,所以它們存放了B的下標1;H的父親是C,所以H存放了下標2;I和J的父親是D,所以它們存放了D的下標3。這種方式可以知道哪個結(jié)點是哪個結(jié)點的父親,哪個結(jié)點是哪個結(jié)點的兒子,但是卻無法確定順序,也就是說,一個結(jié)點可能擁有多個子節(jié)點,但是卻無法確定這些子節(jié)點哪個在前哪個在后。雙親表示法求父節(jié)點方便,因為每個結(jié)點中都保存了其父節(jié)點的下標。

  第二種方式。孩子表示法。依然采用連續(xù)存儲,也就是數(shù)組存儲,不過,一個結(jié)點分為兩部分,一部分放數(shù)據(jù),另一部分放其子節(jié)點的指針(地址)。若是一個結(jié)點有多個孩子,假設(shè)A有三個孩子,B、C和D。那么,A中就存放B的指針域,在B中則存放C的指針域,C中則存放D的指針域,也就是A的孩子采用了鏈式存儲的方式,串聯(lián)了起來。孩子表示法,求其子節(jié)點比較方便,而求其父節(jié)點就比較麻煩。

樹的存儲結(jié)構(gòu)

孩子表示法結(jié)構(gòu)代碼如下:

#define MAXZ_TREE_SIZE  100
typedef struct CTNode{
    
    int child;
    struct CTNode *next;
}*ChildPtr;

typedef struct{

    TElemType data;
    ChildPtr firstchild;
}CTBox;

typedef struct{

    CTBox nodes[MAX_TREE_SIZE];
    int r, n;   //存放樹的根和結(jié)點數(shù)
    
}CTree;

  第三種方式。父親孩子表示法。顧名思義,就是將前兩種方式結(jié)合了。也就是說,一個結(jié)點不止存放數(shù)據(jù),還存放該該節(jié)點的父節(jié)點的下標,還存放該節(jié)點子節(jié)點的指針,那為什么父節(jié)點可以存放下標,存放子節(jié)點就只能存放子節(jié)點的指針?因為,一個結(jié)點只有一個父節(jié)點,卻有多個子節(jié)點,或者是沒有子節(jié)點,所以沒有辦法確定子節(jié)點的個數(shù),于是,就只能通過鏈式存儲了。

樹的存儲結(jié)構(gòu)

        二叉樹法(孩子兄第表示法)就是將一般樹轉(zhuǎn)化為二叉樹。具體轉(zhuǎn)化方式為:左指針指向它的第一個孩子結(jié)點,右指針指向它的第一個兄弟結(jié)點。

二叉樹法結(jié)構(gòu)代碼定義如下:

typedef struct CSNode{
    
    TElemType data;
    struct CSNode *firstchild, *rightsib;

}CSNode, *CSTree;

樹的存儲結(jié)構(gòu)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞名稱:樹的存儲結(jié)構(gòu)-創(chuàng)新互聯(lián)
新聞來源:http://m.rwnh.cn/article10/iiigo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作外貿(mào)建站定制網(wǎng)站、網(wǎng)站設(shè)計、App設(shè)計、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
历史| 静海县| 九江县| 紫金县| 天柱县| 固原市| 民勤县| 日喀则市| 津南区| 高雄市| 永定县| 廉江市| 正镶白旗| 洪洞县| 龙江县| 拉萨市| 海宁市| 泰顺县| 长汀县| 普格县| 乐亭县| 阿巴嘎旗| 新化县| 铁力市| 蚌埠市| 兰考县| 牟定县| 彭山县| 会东县| 泸西县| 金沙县| 长岭县| 宁阳县| 竹山县| 枞阳县| 攀枝花市| 宜君县| 娄底市| 丹凤县| 东至县| 杭州市|