佇列模組的介面:
#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 的元素。同樣,佇列也...