#include
using namespace std;
#define queueelementtype int //佇列的元素型別
#define maxsize 50 //佇列的最大長度
//佇列的結構體定義
typedef struct
queueelementtype elem[maxsize]; //佇列陣列
int front; //頭指標指示器
int rear; //尾指標指示器
}seqqueue;
//初始化佇列
void initqueue(seqqueue *q)
q->front = q->rear = 0;
//判斷佇列是否為空
int isempty(seqqueue *q)
if (q->front == q->rear)
//若隊頭指標和隊尾指標指向同乙個單元,則表示佇列空
return 0;
else
return 1;
//元素入佇列操作
int enterqueue(seqqueue *q, queueelementtype x)
if ((q->rear + 1) % maxsize == q->front)
//隊頭指標加1追上隊尾指標,表示佇列已滿,則無法入隊
return 0;
q->elem[q->rear] = x; //將元素x放入隊尾指標所指的單元
q->rear = (q->rear + 1) % maxsize; //隊尾指標向前移動乙個單元
return 1;
//元素出佇列操作
int deletequeue(seqqueue *q, queueelementtype *x)
if (q->front == q->rear) //若隊列為空,則不能做出佇列操作
return 0;
*x = q->elem[q->front]; //佇列非空,將隊頭指標所指元素x所指單元
q->front = (q->front + 1) % maxsize;
//隊頭指標向前移動乙個單元
return 1;
//獲取隊頭元素
int gethead(seqqueue *q,queueelementtype *x)
if (q->front == q->rear) //若隊列為空,則無法獲取元素
return 0;
*x = q->elem[q->front]; //佇列非空,將隊頭元素出佇列並放入x所指單元
return 1;
//列印楊輝三角形
void yanghui********(int n)
queueelementtype temp, x; //區域性變數,用於元素的出佇列和入佇列
seqqueue q; //宣告乙個佇列變數
initqueue(&q); //初始化乙個空佇列
enterqueue(&q, 1); //第一行元素入佇列
for (int n = 2; n <= n + 1; n++){
//產生第n行元素併入佇列,同時列印出第n-1行的元素
enterqueue(&q, 1); //第n行的第乙個元素入佇列
for (int i = 1; i <= n - 2; i++){
//利用隊中第n-1行元素產生第n行中間的n-2個元素併入佇列
deletequeue(&q, &temp); //第n-1行的元素出佇列
cout << temp << " "; //列印第n-1行的元素
gethead(&q, &x); //獲取佇列的頭元素
temp = temp + x; //利用第n-1行的元素產生第n行元素
enterqueue(&q, temp); //第n行的元素入佇列
deletequeue(&q, &x); //第n-1行的最後乙個元素出佇列
cout << x << " "; //列印第n-1行的最後乙個元素
cout << endl;
enterqueue(&q, 1); //第n行的最後乙個元素入佇列
while (!isempty(&q)){ //列印最後一行元素
deletequeue(&q, &x);
cout << x << " ";
//主函式(程式入口)
int main(void){
int n; // 楊輝三角形的行數
int flag = 1; //程式執行標誌,當輸入0時,退出程式
while (flag){
cout << "input the rows of yanghui********,
please:";
cin >> n;
yanghui********(n);
cout << endl;
cout << "would you once again? yes, input one, please.
no, input zero, please: ";
cin >> flag;
system("cls"); //呼叫系統函式清屏
return 0;
利用迴圈佇列列印楊輝三角形
利用迴圈佇列列印楊輝三角形 首先需要掌握的是循壞佇列的基本函式 1 初始化 2 入隊 3 出隊 其次需要明確列印的循壞巢狀 最後將 整合在一起 include include define maxsize 100 循壞佇列的儲存結構定義 typedef struct queue 初始化操作 void...
列印楊輝三角形
列印楊輝三角形 1000 ms 10000 kb 3016 15287 楊輝三角形具有如下特徵 1 每行數字左右對稱,由1開始逐漸變大,然後變小,回到1。2 第n行的數字個數為n個。3 第n行數字和為2 n 1 4 每個數字等於上一行的左右兩個數字之和。可用此性質寫出整個帕斯卡三角形。5 將第2n ...
列印楊輝三角形
列印楊輝三角形 楊輝三角形就是呈現金字塔型的結構 每個的數字表示式為 a n,x a n 1,x a n 1,x 1 結構如下 11,1 1,2,1 1,3,3,1 1,4,6,4,1 解題思路 迴圈列印的行數,由於對稱型每行的資料型別可以只計算一半,後面的一半完全對折過來。上 public sta...