佇列實現楊輝三角形(資料結構)(C語言)
利用佇列的基本功能輸出楊輝三角形:
- 實現方案:
#include "SequenceQueue.h" int main() { int N, num, i; Queue *que1 = NULL, *que2 = NULL, *tmp = NULL; if(QueueInit(&que1) != SUCCESS || QueueInit(&que2) != SUCCESS) { printf("Init Error!\n"); return 0; } printf("Please input:\n"); scanf("%d", &N); for(i = 0; i < N; i++) { if(0 == i) { Push(que1, 0); Push(que1, 1); Push(que1, 0); num = 1; printf("%4d", num); } else { Push(que2, 0); while(1 != QueueLength(que1)) { num = Pop(que1); num = num + Get(que1); Push(que2, num); printf("%4d ", num); } Push(que2, 0); tmp = que1; que1 = que2; que2 = tmp; QueueClear(que2); } printf("\n"); } return 0; }
- 標頭檔案:
#ifndef _SEQUENCEQUEUE_H #define _SEQUENCEQUEUE_H #include <stdio.h> #include <stdlib.h> #define SIZE 1024 #define SUCCESS 10000 #define FAILURE 10001 #define TRUE 10002 #define FALSE 10003 typedef struct SequenceQueue { int data[SIZE]; int front; int rear; }Queue; int QueueInit(Queue **queue); int QueueEmpty(Queue *queue); int Push(Queue *queue, int i); int Get(Queue *queue); int QueueLength(Queue *queue); int Pop(Queue *queue); int QueueClear(Queue *queue); int QueueDestory(Queue **queue); #endif
- 功能函式:
#include "SequenceQueue.h" int QueueInit(Queue **queue) { if(queue == NULL) { return FAILURE; } *queue = (Queue *)malloc(sizeof(Queue)); if(*queue == NULL) { return FAILURE; } (*queue)->front = 0; (*queue)->rear = 0; return SUCCESS; } int QueueEmpty(Queue *queue) { if(queue == NULL) { return FAILURE; } if(queue->rear == queue->front) { return TRUE; } else { return FAILURE; } } int Push(Queue *queue, int i) { if(queue == NULL) { return FAILURE; } if((queue->rear+1)%SIZE == queue->front) { return FAILURE; } queue->data[queue->rear] = i; queue->rear++; return SUCCESS; } int Get(Queue *queue) { if(queue == NULL) { return FAILURE; } return queue->data[queue->front]; } int QueueLength(Queue *queue) { if(queue == NULL) { return FAILURE; } return (queue->rear-queue->front+SIZE)%SIZE; } int Pop(Queue *queue) { if(queue == NULL) { return FAILURE; } if(queue->front == queue->rear) { return FAILURE; } int e = queue->data[queue->front]; queue->front = (queue->front+1)%SIZE; return e; } int QueueClear(Queue *queue) { if(queue == NULL) { return FAILURE; } queue->front = queue->rear = 0; return SUCCESS; } int QueueDestory(Queue **queue) { if(queue == NULL || *queue == NULL) { return FAILURE; } free(*queue); return SUCCESS; }
相關推薦
佇列實現楊輝三角形(資料結構)(C語言)
利用佇列的基本功能輸出楊輝三角形: 實現方案: #include "SequenceQueue.h" int main() { int N, num, i; Queue *que1 = NULL, *que2 = NULL, *tmp = NULL; if(Qu
迪傑斯特拉演算法(可列印最短路徑)(資料結構題集C語言版7.11)
轉自 https://blog.csdn.net/cxllyg/article/details/7604812 #include <iostream> #include <iomanip> #include <string> usi
資料結構之用佇列實現楊輝三角
/************************************************************** > File Name: PascalTriangle.c > Author: chengfeiyan > Mail:
棧與佇列-順序棧與鏈棧類模板的實現(資料結構基礎 第3周)
這是用C++編寫的棧的類模板的實現,包括順序棧和鏈棧,並進行了簡單的測試。 程式碼中srrStack類和lnkStack類均繼承於Stack類, Stack類可以看成是棧的邏輯結構(ADT抽象資料型別,Abstract Data Type)。注意這裡實現是棧與
Java實現楊輝三角形
[] png 技術 prev pan alt 楊輝三角 es2017 new Java實現楊輝三角形 一、源代碼:YFTriangle.java 1 package cn.com.zfc.day009; 2 3 import java.util.Scanner;
c語言實現楊輝三角形
== c語言 main AI 輸出結果 OS printf 結果 i++ #include <stdio.h> int main(void) { int a[9][9]={}; int i,j; for(i=0;i<9;i++){ for(j
線性表及其應用C語言實現(資料結構複習最全筆記)
一、順序表的表示與實現 1.線性表的順序結構定義 #define LIST_INIT_SIZE 100 //線性表儲存空間的初始分配量 #define LISTINCREMENT 10 //線性表儲存空間的分配增量 typedef struct { ElemType* el
雜湊(Hash)資料結構,使用C語言實現s。傻瓜也能
雜湊資料結構是一種非常簡單,實用的資料結構。原理是將資料通過一定的hash函式規則,然後儲存起來。使查詢的時間複雜度近似於O(1)。進而大大節省了程式的執行時間。 雜湊表的原理如圖 原來的資料可以直接通過雜湊函式儲存起來,這樣在搜尋的時候,等於每一個數據都有了自己的特定查詢號碼,
排序及其應用C語言實現(資料結構複習最全筆記)(期末複習最新版)
排序 關於排序給兩篇不錯的部落格參考: http://www.cnblogs.com/eniac12/p/5329396.html https://www.cnblogs.com/eniac12/p/5332117.html 知識前提 關於內外排序 內排序:指在排序
查詢及其應用C語言實現(資料結構複習最全筆記)
所謂查詢(Search)又稱檢索,就是在一個數據元素集合中尋找滿足某種條件的資料元素。查詢在計算機資料處理中是經常使用的操作。查詢演算法的效率高低直接關係到應用系統的效能。查詢的方法很多,本章將介紹一些常用的查詢演算法,主要有:線性表的查詢、樹表的查詢和散列表的查詢,並對有關的演算法進行效能分析
圖及其應用c語言實現(資料結構複習最全筆記)(期末複習最新版)
圖 一.圖的基本概念 1.圖的定義 圖是由頂點(vertex)集合及頂點間的關係組成的一種資料結構。Graph=(V,E)Graph=(V,E)其中,頂點集合 V={x|x∈某個物件資料集}V={x|x∈某個物件資料集} 是有窮非空集合;E={(x,y)|x,y∈V}E={(x,y
樹及其應用c語言實現(資料結構複習最全筆記)
樹 一.樹的基本概念 二.二叉樹 1.二叉樹的定義 2.二叉樹的性質 此外在這裡在介紹下完美二叉樹的概念及重要性質 完全二叉樹是效率很高的資料結構,完全二叉樹是由滿二叉樹而引出來的。對於深度為K的,有n個結點的二叉樹,當
(資料結構排序的實驗四)快速,冒泡,簡單選擇,直接插入排序的c語言實現!!
<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18p
利用迴圈佇列實現楊輝三角的列印
#define MAXSIZE 100 #include <iostream> using namespace std; typedef int SElemType; typedef struct { SElemType *base; int front;
利用鏈式佇列輸出楊輝三角形和演算法輸出楊輝三角形
鏈式佇列 標頭檔案 #ifndef _SEQUENCEQUEUE_H #define _SEQUENCEQUEUE_H #include <stdio.h> #include <stdlib.h> #define SIZE 1000
二叉樹基礎-二叉樹類模板的實現(資料結構基礎 第5周)
這裡參考了課本配套的程式簡單實現了二叉樹類模板,主要包含了二叉樹的建立和各種遍歷方法。 對於二叉樹的建立,這裡使用的是前序遍歷的方法建立的二叉樹,具體如下: 這裡我使用的下圖中的二叉樹作為測試案例: 具體不說了,詳見程式碼吧。 原始碼 //t
shell腳本實現楊輝三角形
pre dfa please oss elements 更改 one 留言 proc 根據楊輝三角形的每行元素第一位與最後一位都是1,且每個數等於它上方兩數之和,且每行元素數等於行數。利用這些規律,我們很簡單的就可以把楊輝三角形實現出來了!我的想法是用二個數組,循環相互根據
資料結構一(資料結構與演算法基本含義)
1.1 基礎概念 ● 資料元素 ● 是組成資料的,有一定意義的單位 ● 在計算機中通常作為整體處理 ● 也叫做結點或記
構建二叉樹(資料結構,李春葆)
#include <stdio.h> #include <malloc.h> #include <stdlib.h> typedef struct node { char data; struct node* lchild; struct node* rch
資料結構演算法之C語言實現
單鏈表演算法大全(包含所有常見操作):單鏈表演算法連結 二叉樹演算法大全(包含所有常見操作):二叉樹演算法連結 矩陣無向圖演算法(生成、BFS、DFS):矩陣無向圖演算法連結 鄰接表無向圖