C基礎 佇列的實現

2021-06-27 09:05:32 字數 2369 閱讀 9953

佇列模組的介面:

#include #define queue_type int  /* 佇列元素的型別 */

void create_queue( size_t size ); /* 建立乙個佇列,引數指定佇列可以儲存的元素的最大數量 */

/* 注意:這個函式只適用於使用動態分配陣列的佇列 */

void destroy_queue( void ); /* 注意:這個函式只適用於鏈式和動態分配陣列的佇列 */

void insert( queue_type value ); /* 新增新元素 */

void delete( void ); /* 移除乙個元素並將其丟棄 */

queue_type first( void ); /* 返回佇列中第乙個元素的值,但不修改佇列本身 */

int is_empty( void ); /* 判斷佇列是否為空 */

int is_full( void ); /* 判斷佇列是否已滿 */

用靜態陣列實現佇列:

#include "queue.h"

#include #include #define queue_size 100 /* 佇列中元素的最大數量 */

#define array_size ( queue_size + 1 ) /* 陣列的長度 */、

/* 用於儲存佇列元素的陣列和指向佇列頭和尾的指標 */

static queue_type queue[ array_size ];

static size_t front = 1;

static size_t rear = 0;

/* insert */

void insert( queue_type value )

/* delete */

void delete( void )

/* first */

queue_type first( void )

/* is_empty */

int is_empty( void )

/* is_full */

int is_full( void )

動態陣列實現佇列:

#include "queue.h"

#include #include static queue_type *queue;

static size_t queue_size;

static size_t front = 1;

static size_t rear = 0;

void create_queue( size_t size )

void destroy_queue( void )

/*resize_stack函式,這個函式接收乙個引數:堆疊的新長度 */

void resize_queue( size_t new_size )

front = 0;

rear = ( i + queue_size – 1 ) % queue_size;

free( old_queue );

}void insert( queue_type value )

void delete( void )

queue_type first( void )

int is_empty( void )

int is_full( void )

用鍊錶實現佇列:

#include "queue.h"

#include #include /* 定義乙個結構來儲存乙個值,link欄位將指向佇列中的下乙個節點 */

typedef struct queue_node

queuenode;

/* 指向佇列第乙個和最後乙個節點的指標 */

static queuenode *front;

static queuenode *rear;

/* destroy_queue */

void destroy_queue( void )

/* insert */

void insert( queue_type value )

else

rear = new_node;

}/* delete */

void delete( void )

/* first */

queue_type first( void )

/* is_empty() */

int is_empty( void )

/* is_full() */

int is_full( void )

佇列的實現 c

一 介紹 佇列 queue 是一種線性儲存結構。它有以下幾個特點 01 佇列中資料是按照 先進先出 fifo,first in first out 方式進出佇列的。02 佇列只允許在 隊首 進行刪除操作,而在 隊尾 進行插入操作。佇列通常包括的兩種操作 入佇列 和 出佇列。二 實現 c 的stl中本...

c 實現佇列

主要是想聯絡一下c 中的模板怎麼使用,隨便複習一下佇列。佇列最基本的資料結構元素先進先出,這些就不多說了。注意 寫程式時copy建構函式和copy賦值函式的寫法。include includeusing namespace std templateclass queueitem queueitem ...

C 實現佇列

像棧一樣,佇列 queue 也是表。然而,使用佇列時插入在一端進行而刪除則在另一端進行,也就是先進先出 fifo 佇列的基本操作是enqueue 入隊 它是在表的末端 叫做隊尾 rear 插入乙個元素 還有dequeue 出隊 它是刪除 或返回 在表的開頭 叫做隊頭 front 的元素。同樣,佇列也...