先看楊輝三角。使用佇列解決這個問題有1個小的技巧:第一就是在兩個1的兩邊增加兩個0,通過0來標記這一層的結束。先看程式吧:
//遍歷迴圈鍊錶並列印
void printqueue(queue *q)
//輸出楊輝三角的第n行的元素
void yanghui********(int n)
while(y!=0);
//填充隊尾標記
enqueue(&myqueue,0);
} printqueue(&myqueue);
}
下面是約瑟夫環的程式:(我承認我寫的很醜陋,但是貌似可以用)
//輸入size-1個數,每隔interval個數將它去掉,輸出最後的結果
void josephus(int size,int interval)
//先列印賦值結果
printqueue(&jqueue);
int sum = size-1;
//計數器:用來計算隔了多個數
int counter = 0;
int i = 0;
//每隔interval個數(包含這個數)去掉乙個數,最後會剩下interval-1個數
while(sum != interval-1)
if((counter+1)%interval == 0)
else
++counter;
++i;
} for(int i = 0; i < qlength(&jqueue);++i)
printf("\n");
destroyqueue(&jqueue);
}
可以通過開啟除錯語句來看到他是如何一步一步執行的。
這個問題貌似有更簡單的解法,這裡就不深入討論了。
佇列實現楊輝三角
1 首先,需要初始化乙個佇列,即對頭 隊尾 0 2 將第一行的元素1入隊,接著操作第二行 一二行不需要求和操作,直接將元素入隊即可 3 從第三行開始,現在的隊頭指向n 1行,先將每行的固定元素1入隊,然後迴圈操作求和過程 將隊首元素出隊,並儲存它的值temp 獲取當前隊首的元素x,並進行temp t...
佇列練習 楊輝三角
c 實現 佇列 楊輝三角 include include using namespace std define ok 1 define error 1 define overflow 2 typedef int status typedef int qelemtype define maxsize ...
佇列應用之列印楊輝三角 legend
2 實現 include using namespace std 列印楊輝三角 楊輝三角如 11 1 1 2 1 1 3 3 1 第n行有n個數,兩邊是1.然後中間的某個數,等於上一行的兩個相鄰數之和。define maxsize 30 typedef int qelemtype class que...