溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

c++ Tree怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2021-12-08 14:31:58 來源:億速云 閱讀:163 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“c++ Tree怎么實(shí)現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“c++ Tree怎么實(shí)現(xiàn)”吧!

#include <stdio.h>
#include <malloc.h>
typedef struct BTnode
{
    int data;
    struct BTnode *pLchild;
    struct BTnode *pRchild;
}BTNode;
BTNode* createBTree()//靜態(tài)造鏈?zhǔn)綐?
{
    BTNode* pA =(BTNode*) malloc(sizeof(BTNode));
    BTNode* pB =(BTNode*) malloc(sizeof(BTNode));
    BTNode* pC =(BTNode*) malloc(sizeof(BTNode));
    BTNode* pD =(BTNode*) malloc(sizeof(BTNode));
    BTNode* pE =(BTNode*) malloc(sizeof(BTNode));
    pA->data = 'A';
    pB->data = 'B';
    pC->data = 'C';
    pD->data = 'D';
    pE->data = 'E';
    pA->pLchild = pB;
    pA->pRchild = pC;
    pB->pLchild = NULL;
    pB->pRchild = NULL;
    pC->pLchild = pD;
    pC->pRchild = NULL;
    pD->pLchild = NULL;
    pD->pRchild = pE;
    pE->pLchild = NULL;
    pE->pRchild = NULL;
    return pA;
}
void First_print(BTNode* pT) //先序遍歷
{
    //先訪問根節(jié)點(diǎn)  先序訪問左子樹 先序訪問右子樹
    if(pT)
    {
        printf("%c\n",pT->data);
        if(pT->pLchild)
        {
            First_print(pT->pLchild);
        }
        if(pT->pRchild)
        {
            First_print(pT->pRchild);
        }
    }
}
void Middl_print(BTNode* pT) //mid序遍歷
{
    //先訪問根節(jié)點(diǎn)  先序訪問左子樹 先序訪問右子樹
    if(pT)
    {
        if(pT->pLchild)
        {
            Middl_print(pT->pLchild);
        }
        printf("%c\n",pT->data);
        if(pT->pRchild)
        {
            Middl_print(pT->pRchild);
        }
    }
}
void end_print(BTNode* pT) //先序遍歷
{
    //先訪問根節(jié)點(diǎn)  先序訪問左子樹 先序訪問右子樹
    if(pT)
    {
        if(pT->pLchild)
        {
            end_print(pT->pLchild);
        }
        if(pT->pRchild)
        {
            end_print(pT->pRchild);
        }
        printf("%c\n",pT->data);
    }
}
int main ()
{
    BTNode* pT = createBTree();
    printf("first traverse print: \n");
    First_print(pT);
    printf("middle traverse print: \n");
    Middl_print(pT);
    printf("end traverse print: \n");
    end_print(pT);
    return 0;
}

到此,相信大家對“c++ Tree怎么實(shí)現(xiàn)”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI