数据结构——c语言 队列杨辉三角
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                数据结构——c语言 队列杨辉三角
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                戳這里還有其他數據結構的題目噢
https://blog.csdn.net/qq_45724947/article/details/115625130?spm=1001.2014.3001.5501
?設計并驗證以下算法:利用隊列的基本操作輸出圖3.1所示的楊輝三角,并分析兩種遞歸算法與采用隊列算法的時間復雜度。
?直接上代碼:
#include <stdio.h>#define MAXSIZE 50typedef int Queue; typedef struct {Queue element[MAXSIZE];int front;int rear; }SeqQueue;void InitQueue(SeqQueue *Q) {Q->front = Q->rear = 0; }void EnterQueue(SeqQueue *Q, Queue x) {if (Q->rear + 1 == Q->front){printf("隊列已滿不能入隊\n");return;}Q->element[Q->rear] = x;Q->rear = Q->rear + 1; }void printQ(SeqQueue Q) {int i;i = Q.front;while (i != Q.rear){if (i == MAXSIZE){i = 0;}printf(" %d ", Q.element[i]);i++;}printf("\n"); }void DeleteQueue(SeqQueue *Q, Queue *x) {if (Q->front == Q->rear){printf("隊列為空不能出隊\n");return;}*x = Q->element[Q->front];Q->front = Q->front + 1; }void GetHead(SeqQueue *Q, Queue *x) {if (Q->front == Q->rear){printf("隊列為空不能取值\n");return;}*x = Q->element[Q->front]; }int main() {SeqQueue Q;Queue x, temp;int n,N;int i;InitQueue(&Q);EnterQueue(&Q, 1);//第一行元素入隊printf("請輸入楊輝三角行數:(大于等于2)\n");scanf("%d",&N);if(N < 2){ printf("輸入格式錯誤!"); return 0;} for (n = 2; n <= N; n++)//產生第n行元素并入隊,同時打印第n-1行的元素{EnterQueue(&Q,1);//第n行的第一個元素入隊for (i = 1; i <= n - 2; i++)//利用隊中第n-1行元素產生第n行的中間n-2個元素并入隊{DeleteQueue(&Q, &temp);printf(" %d ", temp); //打印出來第n-1行的元素GetHead(&Q, &x);temp = temp + x; // 利用隊列中第n-1行元素產生第n行元素EnterQueue(&Q, temp);} DeleteQueue(&Q, &x);printf(" %d ", x); //打印第n-1行的最后一個元素EnterQueue(&Q,1); //讓第n行的最后一個元素入隊printf("\n");}while (Q.front != Q.rear)//打印最后一行元素{DeleteQueue(&Q, &x);printf(" %d ", x);}return 0; }(請不要直接復制使用。代碼僅供參考,希望讀者借此代碼自身可以理解學習)
 如果代碼對您有幫助,不要忘記評論收藏噢~
總結
以上是生活随笔為你收集整理的数据结构——c语言 队列杨辉三角的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: BATJTMD,大厂招聘,都怎么面Jav
- 下一篇: 《推荐系统实战(一)》基于统计的电影推荐
