国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

引言

現(xiàn)在是北京時(shí)間2023年6月13日9點(diǎn)11分。從決定要開(kāi)始減脂之后,饑餓總是伴隨著我。一覺(jué)起來(lái)肚子咕咕叫,我還是想先把文章發(fā)了再吃第一餐。燕麥加蛋白粉幾乎伴隨了我大學(xué)的第一年早飯。昨天練了一個(gè)小時(shí)背,練背后還做了45分鐘有氧??崭褂?xùn)練沒(méi)有影響我的訓(xùn)練狀態(tài)。這一點(diǎn)我還是比較舒服的。堅(jiān)持鍛煉是一個(gè)不錯(cuò)的習(xí)慣也懇請(qǐng)你務(wù)必多多鍛煉自己的身體,身體就是自己最寶貴的財(cái)富。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

前言

本篇文章講解的主要是二叉樹(shù)的結(jié)構(gòu)以及操作,對(duì)于學(xué)習(xí)二叉樹(shù)來(lái)說(shuō)先了解它的使用,再回過(guò)頭去學(xué)習(xí)它的底層原理等效果會(huì)更好。所以,我就簡(jiǎn)單模擬實(shí)現(xiàn)了一個(gè)簡(jiǎn)單二叉樹(shù),等結(jié)構(gòu)和用法都了解的差不多了再研究二叉樹(shù)真正創(chuàng)建的方式。

typedef int BTDataType;

typedef struct BinaryTreeNode
{
    struct BinaryTreeNode* left;
    struct BinaryTreeNode* right;
    BTDataType data;
    
}BTNode;

BTNode* BuyNode(BTDataType x)
{
    BTNode* node = (BTNode*)malloc(sizeof(BTNode));
    if (node == NULL)
    {
        perror("malloc fail");
        return NULL;
    }

    node->data = x;
    node->left = NULL;
    node->right = NULL;

    return node;
}

BTNode* CreatTree()
{
    BTNode* node1 = BuyNode(1);
    BTNode* node2 = BuyNode(2);
    BTNode* node3 = BuyNode(3);
    BTNode* node4 = BuyNode(4);
    BTNode* node5 = BuyNode(5);
    BTNode* node6 = BuyNode(6);
    BTNode* node7 = BuyNode(7);


    node1->left = node2;
    node1->right = node4;
    node2->left = node3;
    node4->left = node5;
    node4->right = node6;
    node3->right = node7;

    return node1;
}

簡(jiǎn)單回顧

這里簡(jiǎn)單回顧一下二叉樹(shù)的概念。二叉樹(shù)又分為空二叉樹(shù)和非空二叉數(shù)兩種。非空二叉樹(shù)有兩個(gè)部分構(gòu)成:根和子樹(shù),子樹(shù)又可以分成根和子樹(shù)。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

二叉樹(shù)的遍歷

二叉樹(shù)的遍歷大致分為四種,前序遍歷、中序遍歷、后序遍歷、層序遍歷。下面我們就了解一下各種的遍歷方式。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

前序遍歷

實(shí)現(xiàn)思路大致如下,采取遞歸的思想進(jìn)行遍歷。遞歸的結(jié)束條件為遍歷的結(jié)點(diǎn)為空就結(jié)束。

void PreOrder(BTNode* root)
{
    if (root == NULL)
    {
        printf("NULL ");
        return;
    }

    printf("%d ",root->data);
    PreOrder(root->left);
    PreOrder(root->right);
}

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

中序遍歷

與前序遍歷的的代碼邏輯大致一樣,只是訪問(wèn)根的順序時(shí)機(jī)不同。本質(zhì)上還是一樣的思想。

void InOrder(BTNode* root)
{
    if (root == NULL)
    {
        printf("NULL ");
        return;
    }

    InOrder(root->left);
    printf("%d ", root->data);
    InOrder(root->right);
}

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

后序遍歷

void PosOrder(BTNode* root)
{
    if (root == NULL)
    {
        printf("NULL ");
        return;
    }

    PosOrder(root->left);
    PosOrder(root->right);
    printf("%d ", root->data);
}

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

求樹(shù)結(jié)點(diǎn)總數(shù)

求節(jié)點(diǎn)的總個(gè)數(shù)的思路就是用分治的思想。只要節(jié)點(diǎn)不為NULL就表示有一個(gè)結(jié)點(diǎn),然后將左右子樹(shù)的結(jié)點(diǎn)總數(shù)的和加上1(1即根結(jié)點(diǎn))就能求出當(dāng)前結(jié)點(diǎn)的總數(shù)。二叉樹(shù)是可以不斷地拆分成根和左右子樹(shù)的,其實(shí)遞歸的核心就是處理一個(gè)個(gè)與原問(wèn)題類(lèi)似的子問(wèn)題。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

int TreeSize(BTNode* root)
{
    return root == NULL ?
            0 :
            TreeSize(root->left)
            +TreeSize(root->right)
            +1;
}

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

求樹(shù)的高度

求樹(shù)的高度也可以采取分治的思路。如果說(shuō)上面的求結(jié)點(diǎn)總數(shù)是校長(zhǎng)求全校的人數(shù),那么求樹(shù)的高度其實(shí)就是找全校最高的人。實(shí)現(xiàn)思路如下,找左右子樹(shù)中較大的那個(gè)加上根節(jié)點(diǎn)的高度就是樹(shù)的高度。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

int TreeHeight(BTNode* root)
{
    if(root == NULL)
        return 0;
    
    int lh =TreeHeight(root->left);
    int rh =TreeHeight(root->right);
    
    return lh > rh ? lh+1 : rh+1;
}

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

求第k層節(jié)點(diǎn)個(gè)數(shù)

求第k層的結(jié)點(diǎn)個(gè)數(shù)本質(zhì)就是求左子樹(shù)第k-1個(gè)結(jié)點(diǎn)個(gè)數(shù)+右子樹(shù)第k-1層結(jié)點(diǎn)個(gè)數(shù)的和。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

int TreeKLevel(BTNode* root, int k)
{
    if(root == NULL)
        return 0;
    if(k == 1)
        return 1;
    int lk = TreeKLevel(root->left, k-1);
    int rk = TreeKLevel(root->right, k-1);
    
    return lk+rk;
    
}

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

單值二叉樹(shù)問(wèn)題

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)
本題的解題的思路有很多,如遍歷、分治等。當(dāng)然這里比較推薦實(shí)用分治的思想來(lái)進(jìn)行解決這種二叉樹(shù)的很多問(wèn)題中,遍歷的結(jié)局思路是不如分治的。下面就簡(jiǎn)單的介紹一下思路。首先,要將結(jié)點(diǎn)為空的情況考慮進(jìn)去。其次,判斷左右子結(jié)點(diǎn)是否存在且值不相等的情況。最后,分治遞歸進(jìn)行比較判斷,只要有一個(gè)不相等整體就是不為等值二叉樹(shù)。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

二叉樹(shù)的查找

二叉樹(shù)的查找接口,它的作用不僅僅是查找到該結(jié)點(diǎn),還可以作為獲取想要修改結(jié)點(diǎn)的地址的一個(gè)方式。實(shí)現(xiàn)思路主要是以遞歸的思想進(jìn)行遍歷整棵樹(shù)。如果結(jié)點(diǎn)的值==val,那就返回這個(gè)結(jié)點(diǎn)的地址。

BTNode* BTFind(BTNode* root, int x)
{
    if(root == NULL)
    {
        return NULL;
    }
    //判斷
    if(root->data == x)
        return root;
    //NULL不返回,找到了才返回
    BTNode* lret = BTFind(root->left, x);
    if(lret)
        return lret;
    BTNode* rret = BTFind(root->right, x);
    if(rret)
        return rret;
    //走到此處表示沒(méi)有找到結(jié)點(diǎn)
    return NULL;
}

相同二叉樹(shù)

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)
解決本問(wèn)題的思路如下,首先,考慮根節(jié)點(diǎn)都為空的情況以及其中是一個(gè)根結(jié)點(diǎn)為空的情況下。然后遞歸判斷左右子樹(shù)值是否相等即可。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

前序遍歷oj

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)
主要介紹的是接口型oj的特點(diǎn)。這里的returnSize是一個(gè)輸出型參數(shù),傳遞的局部變量標(biāo)識(shí)數(shù)組長(zhǎng)度變量的地址,要求我們寫(xiě)入動(dòng)態(tài)開(kāi)辟數(shù)組的長(zhǎng)度。作為返回值的數(shù)組要用存放在堆區(qū)(動(dòng)態(tài)申請(qǐng))的數(shù)組。若使用局部定義的數(shù)組,在函數(shù)調(diào)用結(jié)束后就會(huì)銷(xiāo)毀,就無(wú)法的到遍歷后的結(jié)果,也會(huì)有野指針問(wèn)題。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

解題思路如下,先求出樹(shù)的結(jié)點(diǎn)總數(shù),然后,根據(jù)樹(shù)的結(jié)點(diǎn)總數(shù)來(lái)malloc申請(qǐng)空間。最后,在創(chuàng)建一個(gè)局部變量來(lái)作為標(biāo)記數(shù)組下標(biāo),前序遍歷將數(shù)據(jù)寫(xiě)入數(shù)組中。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

另一棵樹(shù)的子樹(shù)

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)
解題思路如下,首先,root == NULL時(shí),那就不可能是匹配和subRoot的一樣的子樹(shù)。然后,這里可以復(fù)用之前寫(xiě)的判斷兩樹(shù)是否相同的代碼,用每個(gè)根節(jié)點(diǎn)進(jìn)行匹配,然后,遞歸分治找到匹配的子樹(shù)就返回真,否則返回假。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

層序遍歷

二叉樹(shù)的層序遍歷實(shí)現(xiàn)思路如下,將根節(jié)點(diǎn)入隊(duì)列,遍歷根節(jié)點(diǎn)后,判斷根的左右節(jié)點(diǎn)是否為NULL,不為NULL就入隊(duì)列。循環(huán)往復(fù)直到隊(duì)列為空就結(jié)束層序遍歷。點(diǎn)擊獲取隊(duì)列實(shí)現(xiàn)代碼。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

判斷是否為完全二叉樹(shù)

本接口實(shí)現(xiàn)主要思路是根據(jù)層序遍歷,完全二叉樹(shù)第一個(gè)NULL結(jié)點(diǎn)后面不會(huì)出現(xiàn)非空結(jié)點(diǎn)。實(shí)現(xiàn)步驟依舊是層序遍歷的思路,當(dāng)出到第一個(gè)NULL結(jié)點(diǎn)時(shí),便不再讓數(shù)據(jù)入隊(duì),遍歷剩下的結(jié)點(diǎn)。當(dāng)出現(xiàn)非空結(jié)點(diǎn)即表示不是完全二叉樹(shù),若全為空結(jié)點(diǎn)則表示為完全二叉樹(shù)。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)

二叉樹(shù)的銷(xiāo)毀

采取后序遍歷的思想進(jìn)行對(duì)節(jié)點(diǎn)的釋放。這里實(shí)現(xiàn)的版本為一級(jí)指針作為參數(shù),需要調(diào)用本函數(shù)后手動(dòng)置空。
數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-481836.html

到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù)基礎(chǔ)結(jié)構(gòu)篇(C語(yǔ)言)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【數(shù)據(jù)結(jié)構(gòu)】二叉樹(shù)---C語(yǔ)言版

    【數(shù)據(jù)結(jié)構(gòu)】二叉樹(shù)---C語(yǔ)言版

    樹(shù)是一種 非線性 的數(shù)據(jù)結(jié)構(gòu),它是由n(n=0)個(gè)有限結(jié)點(diǎn)組成一個(gè)具有層次關(guān)系的集合。把它叫做樹(shù),是因?yàn)樗雌饋?lái)像一棵倒掛的樹(shù),也就是說(shuō)它是根朝上,而葉朝下的。 有一個(gè)特殊的結(jié)點(diǎn),稱(chēng)為根結(jié)點(diǎn), 根節(jié)點(diǎn)沒(méi)有前驅(qū)結(jié)點(diǎn) 除根節(jié)點(diǎn)外,其余結(jié)點(diǎn)被分成M(M0)個(gè)互不相交

    2024年02月05日
    瀏覽(28)
  • 【C語(yǔ)言/數(shù)據(jù)結(jié)構(gòu)】二叉樹(shù)(層序遍歷|判斷完全二叉樹(shù)|性質(zhì))

    【C語(yǔ)言/數(shù)據(jù)結(jié)構(gòu)】二叉樹(shù)(層序遍歷|判斷完全二叉樹(shù)|性質(zhì))

    ???個(gè)人主頁(yè): 秦jh__https://blog.csdn.net/qinjh_?spm=1010.2135.3001.5343 ???系列專(zhuān)欄: 《數(shù)據(jù)結(jié)構(gòu)》https://blog.csdn.net/qinjh_/category_12536791.html?spm=1001.2014.3001.5482 ? ??? 目錄 ?層序遍歷 ?層序遍歷函數(shù)實(shí)現(xiàn) 判斷二叉樹(shù)是否為完全二叉樹(shù) 二叉樹(shù)性質(zhì) ? ???? ?? hello! 各位鐵子們大

    2024年01月24日
    瀏覽(27)
  • 數(shù)據(jù)結(jié)構(gòu)~二叉樹(shù)(基礎(chǔ)知識(shí))

    數(shù)據(jù)結(jié)構(gòu)~二叉樹(shù)(基礎(chǔ)知識(shí))

    上一篇博客我們對(duì)樹(shù)有了初步了解與學(xué)習(xí),這篇我將初步學(xué)習(xí)二叉樹(shù)?。。ㄐ履昕鞓?lè)?。?目錄 二叉樹(shù)?? 1、定義: 2、特點(diǎn): 3、基本形態(tài): 4、二叉樹(shù)的種類(lèi): (1)滿(mǎn)二叉樹(shù) (2)完全二叉樹(shù) (效率高) (3)斜樹(shù) 5、二叉樹(shù)的性質(zhì): ?6、二叉樹(shù)的存儲(chǔ): 1、定義: 二叉樹(shù)

    2024年02月19日
    瀏覽(26)
  • 【數(shù)據(jù)結(jié)構(gòu)】二叉樹(shù)基礎(chǔ)入門(mén)

    【數(shù)據(jù)結(jié)構(gòu)】二叉樹(shù)基礎(chǔ)入門(mén)

    ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???? ?? ?? ?? 個(gè)人主頁(yè) :阿然成長(zhǎng)日記 ??點(diǎn)擊可跳轉(zhuǎn) ?? 個(gè)人專(zhuān)欄: ??數(shù)據(jù)結(jié)構(gòu)與算法??C語(yǔ)言進(jìn)階 ?? 不能則學(xué),不知?jiǎng)t問(wèn),恥于問(wèn)人,決無(wú)長(zhǎng)進(jìn) ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 一棵二叉樹(shù)是結(jié)點(diǎn)的

    2024年02月09日
    瀏覽(24)
  • [數(shù)據(jù)結(jié)構(gòu) -- C語(yǔ)言] 二叉樹(shù)(BinaryTree)

    [數(shù)據(jù)結(jié)構(gòu) -- C語(yǔ)言] 二叉樹(shù)(BinaryTree)

    目錄 1、樹(shù)的概念及結(jié)構(gòu) 1.1 樹(shù)的概念 1.2 樹(shù)的相關(guān)概念(很重要) 1.3 樹(shù)的表示 2、二叉樹(shù)的概念及結(jié)構(gòu) 2.1 概念 2.2 特殊二叉樹(shù) 2.3 二叉樹(shù)的性質(zhì)(很重要) 2.4 練習(xí)題 2.5 二叉樹(shù)的存儲(chǔ)結(jié)構(gòu) 2.5.1 順序存儲(chǔ) 2.5.2 鏈?zhǔn)酱鎯?chǔ) 3、二叉樹(shù)的順序結(jié)構(gòu)及實(shí)現(xiàn) 3.1 二叉樹(shù)的順序結(jié)構(gòu) 3.2 堆的

    2024年02月16日
    瀏覽(21)
  • 【數(shù)據(jù)結(jié)構(gòu)】二叉樹(shù)基礎(chǔ)OJ

    目錄 1. 單值二叉樹(shù) 2. 檢查兩顆樹(shù)是否相同 3. 對(duì)稱(chēng)二叉樹(shù) 4. 二叉樹(shù)的前序遍歷 5. 二叉樹(shù)的中序遍歷 6. 二叉樹(shù)的后序遍歷 7. 另一顆樹(shù)的子樹(shù) 8. 二叉樹(shù)的結(jié)構(gòu)及遍歷 世界上沒(méi)有不勞而獲的東西! 鏈接 :力扣 代碼1 : 思想 :(1)【左孩子的返回值是否相等+右孩子的返回值是

    2024年02月16日
    瀏覽(22)
  • 【數(shù)據(jù)結(jié)構(gòu)初階】八、非線性表里的二叉樹(shù)(二叉樹(shù)的實(shí)現(xiàn) -- C語(yǔ)言鏈?zhǔn)浇Y(jié)構(gòu))

    【數(shù)據(jù)結(jié)構(gòu)初階】八、非線性表里的二叉樹(shù)(二叉樹(shù)的實(shí)現(xiàn) -- C語(yǔ)言鏈?zhǔn)浇Y(jié)構(gòu))

    ========================================================================= 相關(guān)代碼gitee自取 : C語(yǔ)言學(xué)習(xí)日記: 加油努力 (gitee.com) ?========================================================================= 接上期 : 【數(shù)據(jù)結(jié)構(gòu)初階】七、非線性表里的二叉樹(shù)(堆的實(shí)現(xiàn) -- C語(yǔ)言順序結(jié)構(gòu))-CSDN博客 ?==========

    2024年02月08日
    瀏覽(31)
  • 二叉樹(shù)的實(shí)現(xiàn)(C語(yǔ)言數(shù)據(jù)結(jié)構(gòu))

    二叉樹(shù)的實(shí)現(xiàn)(C語(yǔ)言數(shù)據(jù)結(jié)構(gòu))

    目錄 一、以下是我們需要實(shí)現(xiàn)的功能 二、以下是我們具體功能的實(shí)現(xiàn) 1.創(chuàng)建新的結(jié)點(diǎn) 2.通過(guò)數(shù)組生成二叉樹(shù) ?3.先序遍歷 4.中序遍歷 5.后序遍歷? ?6.層序遍歷 7.計(jì)算二叉樹(shù)的結(jié)點(diǎn)個(gè)數(shù) 8.查找指定值為x的結(jié)點(diǎn) 9.查找第K層的結(jié)點(diǎn)個(gè)數(shù) 10.統(tǒng)計(jì)二叉樹(shù)葉子結(jié)點(diǎn)的個(gè)數(shù) 11.判斷是否為

    2024年02月04日
    瀏覽(18)
  • 【C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)】二叉樹(shù)的遍歷

    【C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)】二叉樹(shù)的遍歷

    所謂先序遍歷二叉樹(shù),指的是從根結(jié)點(diǎn)出發(fā),按照以下步驟訪問(wèn)二叉樹(shù)的每個(gè)結(jié)點(diǎn): 訪問(wèn)當(dāng)前結(jié)點(diǎn); 進(jìn)入當(dāng)前結(jié)點(diǎn)的左子樹(shù),以同樣的步驟遍歷左子樹(shù)中的結(jié)點(diǎn); 遍歷完當(dāng)前結(jié)點(diǎn)的左子樹(shù)后,再進(jìn)入它的右子樹(shù),以同樣的步驟遍歷右子樹(shù)中的結(jié)點(diǎn); 先序遍歷這棵二叉樹(shù)的過(guò)

    2024年02月04日
    瀏覽(23)
  • 【C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)】堆與二叉樹(shù)(下)

    【C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)】堆與二叉樹(shù)(下)

    接著上次的,這里主要介紹的是堆排序,二叉樹(shù)的遍歷,以及之前講題時(shí)答應(yīng)過(guò)的簡(jiǎn)單二叉樹(shù)問(wèn)題求解 給一組數(shù)據(jù),升序(降序)排列 思路 思考:如果排列升序,我們應(yīng)該建什么堆? 首先,如果 排升序 ,數(shù)列最后一個(gè)數(shù)是 最大數(shù),我們的思路是通過(guò) 向上調(diào)整 或者 向下調(diào)

    2024年01月19日
    瀏覽(15)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包