佇列的簡單應用 楊輝三角和約瑟夫環

2021-09-30 14:50:17 字數 932 閱讀 5122

先看楊輝三角。使用佇列解決這個問題有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...