使用佇列實現等腰的楊輝三角

2021-08-22 13:17:42 字數 1947 閱讀 4599

使用佇列列印等腰的楊輝三角

標頭檔案

#ifndef _queue_h

#define _queue_h

#include#include#define size 30

#define success 10000

#define failure 10001

#define ture 10002

#define false 10003

struct queue

;typedef struct queue que;

int initqueue(que *p); // 初始化

int emptyqueue(que p); // 判斷佇列是否為空

int enterqueue(que *p,int e); // 進入佇列

int getfrontqueue(que p); // 得到隊頭元素

int lengthqueue(que p); // 求佇列長度

int deletequeue(que *p); // 刪除佇列

#endif

子函式檔案

#include"queue.h"

int initqueue(que *p)

p->rear = p->front = 0;

return success;

}int emptyqueue(que p)

int enterqueue(que *p,int e)

if((p->rear+1)%size == p->front)

p->data[p->rear] = e;

p->rear = (p->rear + 1) % size;

return success;

}int getfrontqueue(que p)

return p.data[p.front];

}int lengthqueue(que p)

int deletequeue(que *p)

if(p->front == p->rear)

int e = p->data[p->front];

p->front = (p->front+ 1 ) % size;

return e;

}

主函式檔案

#include "queue.h"

int main()

// 先給 p 佇列三個元素,楊輝三角首行(輸出時選擇大於0的元素)

enterqueue(&p,0); //佇列的頭元素為0

enterqueue(&p,1);

enterqueue(&p,0); //佇列的最後乙個元素為0

len = lengthqueue(p); //求對列p的長度 < size-1

while( i <= n && len < size )

t = deletequeue(&p); // 刪除佇列,就是把每乙個佇列中的元素進行出隊

enterqueue(&q,e+t);

}printf("\n");

enterqueue(&q,0);

i++;

len++;

} else if( i%2 != 1 && emptyqueue(p) == ture)

t = deletequeue(&q);

enterqueue(&p,e+t);

}printf("\n");

enterqueue(&p,0);

i++;

len++;

} }return 0;

}

楊輝三角的等腰輸出

楊輝三角 利用遞迴關係在乙個函式中實現 c語言初學者,在運算子的前後沒有空格,請見諒 include stdio.h define n 5 int main i,j 給a n n 賦初值0,為 三角形的末位1做鋪墊 for i 0 ia i 0 1 給第一列賦值 for i 1 ifor j 1 j...

佇列實現楊輝三角

1 首先,需要初始化乙個佇列,即對頭 隊尾 0 2 將第一行的元素1入隊,接著操作第二行 一二行不需要求和操作,直接將元素入隊即可 3 從第三行開始,現在的隊頭指向n 1行,先將每行的固定元素1入隊,然後迴圈操作求和過程 將隊首元素出隊,並儲存它的值temp 獲取當前隊首的元素x,並進行temp t...

迴圈佇列實現楊輝三角

經過前面的介紹,如果自己動手寫過 會發現下面的 是比較容易實現的,這裡我就不做解釋,把精力留到後面二叉樹 圖的實現再細談 include using namespace std define maxqsize 100 typedef int qelemtype typedef struct sqqu...