如題,首先,可以從楊輝三角可以知道,它的每個數等於它上方兩數之和、每行第乙個數和最後乙個數都是1。
那麼怎麼用佇列去實現它呢?
首先可以想到,隊首和隊尾分別指向相鄰的兩行。每當隊首出乙個元素,就生成乙個隊尾的元素入隊。
那麼問題來了,楊輝三角的特性可以知道:第n行比第n-1行多乙個元素,這就導致入隊和出隊不匹配,每行入隊的元素比出隊的元素多一。
解決方案是,對於每行,都先把0先入隊當成這行的第乙個元素。這樣入隊和出隊就平衡了。
具體實現思路:
1.首先讓0和1入隊成為第一行。
2.對於餘下的每行,先讓0入隊
3.每次先出乙個元素和隊首元素相加,總和入隊。
具體的**實現如下:
#include
#define max 1000
struct queuequeue;
bool emty()
int init_queue()
int in_queue(int val)
int out_queue()
int get_first()
int main()
printf("\n");
}return
0;}
佇列實現楊輝三角
1 首先,需要初始化乙個佇列,即對頭 隊尾 0 2 將第一行的元素1入隊,接著操作第二行 一二行不需要求和操作,直接將元素入隊即可 3 從第三行開始,現在的隊頭指向n 1行,先將每行的固定元素1入隊,然後迴圈操作求和過程 將隊首元素出隊,並儲存它的值temp 獲取當前隊首的元素x,並進行temp t...
用python實現楊輝三角和倒楊輝三角
因為我只有c的基礎所以很多東西是生辦過來的,方法可能有些笨,請諒解。不說了直接附上 import numpy as np 整形輸入 n int input 根據輸入大小來建立矩陣 x,y n,2 n 1 生成全零的numpy矩陣 a np.zeros x,y dtype int 根據規律填數 for...
迴圈佇列實現楊輝三角
經過前面的介紹,如果自己動手寫過 會發現下面的 是比較容易實現的,這裡我就不做解釋,把精力留到後面二叉樹 圖的實現再細談 include using namespace std define maxqsize 100 typedef int qelemtype typedef struct sqqu...