說明1:以下**在vs2017中編譯通過,讀者使用時可以直接將標頭檔案(linkqueue.h),原始檔(linkqueue.c),主檔案(main.c)中的內容直接拷貝過去,即可編譯執行!
說明2:執行圖示
標頭檔案:linkqueue.h(函式的宣告)
#ifndef _linkqueue_h_
#define _linkqueue_h_
#include
#include
#include
#include
#define error -1
#define elemtype int
//鏈佇列結點
typedef
struct queuenode
queuenode,
*pqueuenode;
//鏈佇列
typedef
struct
linkqueue;
void
initqueue
(linkqueue* q)
;pqueuenode createnode
(elemtype data)
;void
enqueue
(linkqueue* q, elemtype data)
;void
dequeue
(linkqueue* q)
;int
gethead
(linkqueue* q)
;void
destoryqueue
(linkqueue* q)
;void
clearqueue
(linkqueue* q)
;bool emptyqueue
(linkqueue* q)
;int
lengthqueue
(linkqueue* q)
;void
showqueue
(linkqueue* q)
;#endif
// ! _linkqueue_h_
原始檔:linkqueue.c(函式的定義)
#include
"linkqueue.h"
void
initqueue
(linkqueue* q)
pqueuenode createnode
(elemtype data)
void
enqueue
(linkqueue* q, elemtype data)
void
dequeue
(linkqueue* q)
intgethead
(linkqueue* q)
void
clearqueue
(linkqueue* q)
q->rear = q->front;
}void
destoryqueue
(linkqueue* q)
bool emptyqueue
(linkqueue* q)
intlengthqueue
(linkqueue* q)
return length;
}void
showqueue
(linkqueue* q)
printf
("<:rear>
}
主檔案:main.c(測試檔案)
#include
"linkqueue.h"
intmain()
迴圈佇列與鏈佇列的簡單實現
為充分利用向量空間,克服 假溢位 現象的方法是 將向量空間想象為乙個首尾相接的圓環,並稱這種向量為迴圈向量。儲存在其中的佇列稱為迴圈佇列 circular queue 通過上圖可以看出,如果使用順序表作為佇列的話,當處於d狀態則不能繼續插入新的隊尾元素,否則會因為陣列越界而導致程式 被破壞。當隊列為...
迴圈佇列的定義與實現
說明1 以下 在vs2017中編譯通過,讀者使用時可以直接將標頭檔案 sqqueue.h 原始檔 sqqueue.c 主檔案 main.c 中的內容直接拷貝過去,即可編譯執行!說明2 執行圖示 標頭檔案 sqqueue.h 函式的宣告 ifndef sqqueue h define sqqueue ...
鏈棧與鏈佇列
首先,我們先搞清楚,棧的原理就是現金後出,譬如往箱子裡面放球,最先放進去的最後拿出來。下面給一下我臭臭的 include include 定義結構體 struct node int main q p 列印建立的鍊錶 t head next while t null 鏈棧 先入後出,因此新入的數應該在...