佇列的應用—輸出楊輝三角
阿新 • • 發佈:2019-02-07
#include"Queue.h" #include<iostream> using namespace std; const int total_row = 6; void main() { void Pascal_Triangle();//函式宣告 Pascal_Triangle(); } void Pascal_Triangle()//楊輝三角 輸出二項式係數 { Queue<int> qu;//佇列 int elem_1 = 1;//進佇列 須是引用才行 int elem_0 = 0; int current_row_elem,next_row_elem;//用來出佇列和進佇列的變數 int temp_elem = 0;//交換值 qu.InQueue(elem_1); qu.InQueue(elem_1);//先把兩個1進佇列 for(int r=1;r<=total_row;r++)//逐行處理 { cout<<endl; qu.InQueue(elem_0);//先把待處理的這一行的首部 賦上一個0 作為標誌 for(int c=1;c<=r+2;c++)//每一行的r+2個元素值 { current_row_elem = qu.DeQueue();//出佇列 next_row_elem = current_row_elem + temp_elem;//用出佇列的值 來計算下一行的值 qu.InQueue(next_row_elem);//計算出後 進佇列 temp_elem = current_row_elem;//每一次小迴圈結束 都會使temp_elem賦成0開始下一行的輸出 if(c!=r+2) cout<<temp_elem<<" ";//把剛才出佇列的值輸出 }//內迴圈 不停的出佇列進佇列(每當出佇列一個 就會計算進佇列的下一行的一個) }//迴圈全部結束後 其實佇列中還存留著row+1行的資訊 只不過只有輸出row行就結束了罷了 }