目錄
為衛(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)查看詳情吧