真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

還原二叉樹(求高度并輸出二叉樹)-創(chuàng)新互聯(lián)

目錄

為衛(wèi)輝等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及衛(wèi)輝網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設、網(wǎng)站建設、衛(wèi)輝網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

舉一個例子:

求大高度

先序遍歷

樹的層序遍歷

解析:


在還原二叉樹的過程中,我們必須明確中序遍歷的結果才能進行

舉一個例子:

已知后序遍歷結果和中序遍歷結果:

(依據(jù)后序從后往前的結果為根節(jié)點開始劃分)

例題:?

題目詳情 - 7-1 還原二叉樹 (pintia.cn)

(前序和中序)

求大高度
#includeusing namespace std;

const int N=55;
char pre[N],inoder[N];
int n,h;

typedef struct Binode{
    int elem;
    Binode*lchild,*rchild;
}Binode;

Binode*creatheap(char pre[],char in[],int N){
    if(N<=0)
    return NULL;
    Binode*T1=new Binode;
    int i=0;
    T1->elem=pre[0];
    while(ilchild=creatheap(pre+1,in,i);
    T1->rchild=creatheap(pre+i+1,in+i+1,N-i-1);
    return T1;
}

int  heap(Binode*T){
     if(T==NULL) return 0; 
    else  
    { 
        int m = heap(T->lchild); 
        int n = heap(T->rchild); 
        return (m >n) ? (m+1) : (n+1);  
    } 
}

int main(){
    cin>>n;
    cin>>pre>>inoder;
    Binode*T;
    T=creatheap(pre,inoder,n);
    h=heap(T);
    cout<

例題:?

題目詳情 - 7-2 根據(jù)后序和中序遍歷輸出先序遍歷 (pintia.cn)

先序遍歷
#includeusing namespace std;

const int N=35;
int post[N],inoder[N];
int n;

typedef struct Binode{
    int elem;
    Binode*lchild,*rchild;
}Binode;

Binode*creatheap(int po[],int in[],int N){
    if(N==0)
        return NULL;
    int i=0;
    //Binode*T1=new Binode;
    Binode*T1=(Binode*)malloc(sizeof(Binode));
    T1->elem=po[N-1];
    while(ielem){
            break;
        }
        i++;
    }
    T1->lchild=creatheap(po,in,i);
    T1->rchild=creatheap(po+i,in+i+1,N-i-1);
    return T1;
}

void printheap(Binode*T){
    if(T){
        cout<<' '<elem;
        printheap(T->lchild);
        printheap(T->rchild);
    }
}

int main(){
    cin>>n;
    Binode*T;
    for(int i=0;i>post[i];
    for(int i=0;i>inoder[i];
    cout<<"Preorder:";
    T=creatheap(post,inoder,n);
    printheap(T);
}

例題:

題目詳情 - 7-3 樹的遍歷 (pintia.cn)

樹的層序遍歷 解析:

通過一個隊列對二叉樹進行遍歷,與廣度優(yōu)先搜索極為相似

#includeusing namespace std;

const int N=35;
int post[N],inoder[N];
int n;

typedef struct BiNode{
    int elem;
    BiNode*lchild,*rchild;
}BiNode;

BiNode*creatheap(int p[],int in[],int N){
    if(N<=0)
        return NULL;
    BiNode*T1=new BiNode;
    T1->elem=p[N-1];
    int i=0;
    while(ielem==in[i])
        break;
        i++;
    }
    T1->lchild=creatheap(p,in,i);
    T1->rchild=creatheap(p+i,in+i+1,N-i-1);
    return T1;
}

void printfheap(BiNode*T2){
    queueque;
    que.push(T2);
    int i=0;
    while(!que.empty()){
        auto p=que.front();
        if(i==0)
        cout<elem;
        else
        cout<<' '<elem;
        que.pop();
        if(p->lchild!=NULL)que.push(p->lchild);
        if(p->rchild!=NULL)que.push(p->rchild);
        i++;
    }
}

int main(){
    BiNode*T;
    cin>>n;
    for(int i=0;i>post[i];
    for(int i=0;i>inoder[i];
    T=creatheap(post,inoder,n);
    printfheap(T);
}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


本文標題:還原二叉樹(求高度并輸出二叉樹)-創(chuàng)新互聯(lián)
瀏覽路徑:http://weahome.cn/article/cogjcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部