用佇列實現楊輝三角

2021-08-08 10:49:25 字數 708 閱讀 4868

如題,首先,可以從楊輝三角可以知道,它的每個數等於它上方兩數之和、每行第乙個數和最後乙個數都是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...