PAT甲級1020解法

2022-05-25 07:42:10 字數 631 閱讀 2560

#include #include #include using namespace std;

struct node

;vectorpostorder;

vectorinorder;

queuelevelorder;

void level(node* root, int n);

node* construct(int postl, int postr, int inl, int inr);

int main()

for (int i = 0; i < n; i++)

node *tree= construct(0, n - 1, 0, n - 1);

level(tree, n);

}//四個引數都代表構建結點時統計資料的邊界,postl,postr代表後序列表的開始結點和結尾結點,inl和inr代表中序列表的開始結點和結尾結點

//左子樹的postl永遠是0,右子樹的inr永遠是n-1

node* construct(int postl, int postr, int inl, int inr)

void level(node* root,int n) //層次遍歷

}

PAT甲級1017解法

這題也出現了時間,我們根據上一題的經驗同樣把時分秒轉換為自零點零分零秒開始經過的秒數。這題也出現了視窗排隊,之前也有題目可以參考,而且這次每個視窗最多排乙個,更加簡單。另外,之前用過的sort排序這裡也有用處。本來我的想法是先填滿所有視窗,將沒排進視窗的統一放在乙個佇列中儲存,但這個方法比較複雜,而...

PAT甲級1016解法

這題的關鍵在於使用什麼資料結構去存輸入的資料,以及如何計算每次通話的費用。一開始我考慮了乙個非常複雜的方法,發現寫了一百多行 才開了個頭,覺得不太對勁,於是就上網搜尋了其他人是怎麼做的,看了之後豁然開朗。在讀入各個時段的話費 時,進行累加操作最後得出全天的話費方便後續計算。另外需要定義乙個儲存每條聯...

PAT甲級 1020 樹的遍歷

用了乙個hash表方便後續的查詢工作。pos的作用是記錄中序遍歷中 的該值所在的陣列下標編號 int q n 模擬乙個佇列,用於輸出層序遍歷 intbuild int il,int ir,int pl,int pr void bfs int root 輸出個層序遍歷 int main int roo...