PAT甲級題解 1119

2021-10-21 19:24:26 字數 1327 閱讀 2879

根據前序和後序來確定中序是否是唯一的 如果乙個數他在根結點旁邊 那麼就無法判斷它是否是左右子樹 這個時候就得重新考慮了

#include

using

namespace std;

const

int maxn =50;

struct node

;bool flag =

true

;vector<

int> in;

int pre[maxn]

;int post[maxn]

;node*

create

(int prel,

int prer,

int postl,

int postr)

node* root =

new node;

root -

> data = pre[prel]

; root -

> left = root -

> right =

null;if

(prel == prer)

int k;

for(

int i = prel +

1;i<=prer;i++)}

int numleft = k - prel -1;

if(numleft >=1)

else

return root;

}void

inorder

(node* root)

inorder

(root -

> left)

;// printf("%d\n",root -> data);

in.push_back

(root -

> data)

;inorder

(root -

> right);}

intmain

(void

)for

(int i =

0;i) node* root =

null

; root =

create(0

,n -1,

0,n -1)

;if(flag ==

true

)else

inorder

(root)

;for

(int i =

0;isize()

;i++

)else

}printf

("\n");

return0;

}```

PAT甲級題解目錄

寫在前面 9月8號剛參加了第一次pat甲級考試,成績還算是滿意。但是沒有滿分,算是有一點小遺憾,於是打算12月再來一次,但是這次採用佛系備考與吃老本的複習方法 畢竟初試重要啊 為了記錄一下成長歷程和各題要點,順便做乙個部落格題解,也給有需要的戰友們提供乙個參考吧。本部落格純屬個人記錄與經驗分享,不帶...

PAT甲級題解1004

注意的是m代表的是the number of non leaf nodes 要看清楚題意,一開始把n m認為是輸入的行數了 利用vector特性 題意大致是尋找每層葉結點的個數,dfs遍歷這棵樹,遍歷時統計即可。include using namespace std const int maxn 1...

PAT甲級題解 1021

先判斷有幾個連通塊嗎,因為已經滿足邊的個數等於頂點個數減1所以一定是一棵樹,只要是1.本來用的是優先佇列,最後發現沒過,其實是error k components 少了個s看題目一定要仔細 include using namespace std const int maxn 10100 vector...