資料結構隊的使用

2021-08-07 23:59:28 字數 1426 閱讀 1977

/* 本程式實現佇列的基本功能 

建立隊、 進隊、 出隊、 判滿、 判空、銷毀 */

/* main.c */

#include#include"squeue.h"

int main(void)

return ok;

}/* queue.c */

#include #include #include "squeue.h"

// 建立squeue createqueue(void) sq->front = sq->rear = 0; return sq;}// 判空int emptyqueue(squeue sq)//

判滿int fullqueue(squeue sq) else }// 入隊data_t enqueue(squeue sq,data_t val) sq->rear = sq->rear % max; // 構成迴圈佇列 sq->a[sq->rear] = val; sq->rear++; return ok;}// 出隊data_t dequeue(squeue sq) sq->front = sq->front % max; // 構成迴圈佇列 data_t val

= sq->a[sq->front]; sq->front++; return val;}// 清空void clearqueue(squeue sq)// 銷毀void destroy(squeue sq)

/* queue.h */

#ifndef _squeue_h

#define _squeue_h

#define max 10

#define true 1

#define false 0

#define ok 1

#define error -1

typedef int data_t;

struct node;

typedef struct node sqnode;

typedef struct node * squeue;

squeue createqueue(void); // 建立空隊

void clearqueue(squeue sq); // 清空

int emptyqueue(squeue sq); // 判斷隊是否空

int fullqueue(squeue sq); // 判斷隊是否滿

data_t enqueue(squeue sq,data_t val); // 進隊

data_t dequeue(squeue sq); // 出隊

void destroy(squeue sq); // 銷毀

#endif

資料結構 隊

1 隊的定義 1.1 隊 只允許在一端進行插入,在另一端進行刪除的操作的線性表,又稱為先進先出 first in first out 線性表,簡稱fifo 1.2 隊的相關概念 隊頭 允許進行刪除操作的一端 隊尾 允許進行插入操作的一端 空隊 不含任何資料元素的隊 1.3 隊的操作 入隊 在隊尾新增...

資料結構(2) 隊

隊 queue 前一篇講了棧 stack 隊和棧其實只有乙個差別,棧是先進後出,隊是先進先出,如圖 從圖中可以看出,隊有兩個常用的方法,enqueue和dequeue,顧名思義,就是進隊和出隊了。隊和棧一樣,既可以用陣列實現,也可以用鍊錶實現,我還是偏向於用陣列,我的實現示意圖如下 隊有啥用呢?乙個...

資料結構 隊queue

實現 所以實現佇列只需要提供隊前刪除的方法和對尾插入的方法 可以通過陣列實現,也可以通過鍊錶實現,jdk中arraydeque是通過陣列實現的佇列 雙向佇列 linkedlist,則是通過雙向鍊錶實現的佇列 可以作為棧來看 具體實現略 jdk中的隊體系 常見 繼承於collection介面的queu...