看板 Grad-ProbAsk 關於我們 聯絡資訊
http://tinyurl.com/d3p77ln 關於第四題和第十一題 第四題補習班是有給答案 今天寫完考古題對一下才發現跟補習班的寫法差很多, 不過還是想請各位高手看一下我這樣可以嗎 我不想每題程式都用補習班的邏輯.. (第四題) int main() { int h = TreeHight();//取得樹高 int A[h*h-1];//假設為Full Tree,最多h*h-1個node int i=1;//放陣列用 levelorder(r,A,i);//呼叫levelorder for(i=0;i<A.length;i++)//開始列印 { if(A[i]==NULL)continue;//如果遇到空元素就跳過 printf(A[i] );//只列印非空元素 } } void levelorder(node*r,int*A[],i)//節點,陣列,放第幾格的i { if(R==NULL)return;//如果R為空就結束 A[i]=r->data;//從A[1]開始照順序放 levelorder(r->left,A,i*2);找左子樹,並讓i*2的格子表示左兒子 levelorder(r->right,A,i*2+1);右子樹 } 像這樣 A[1] O / \ A[2]O OA[3] A[2]=A[i*2],A[3]=A[i*2+1] / \ O OA[7] A[4] 第十一題我寫了selection sort執行k次 然後回傳A[k]元素表示第k小的數值 請問這樣可以嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.181.142.28
cksh8008:第四題自己測試以後 發現可以 01/24 20:57