實現起來並不困難,主要是需要對相關細節要進行全面考慮。
比如說:什麼時候不能出隊啊,入隊要考慮溢位啊等等......
佇列其實顧名思義,乙個場景出現了,一群人排隊買燒麥(因為高中住房附近有一家燒麥特別好吃,一到放學時間就排起了隊,映像深刻),後來的人排到隊尾,隊頭的人買到燒麥後就離開佇列,一邊走一遍美美地吃著。
佇列和棧在程式設計中會經常用到,基礎知識我們也不能大意。
以下是我使用c語言實現的佇列的**:
/*
* 內容:佇列實現
* 語言:c語言
* */
#include
#include
#define datasize 1024
struct queue;
typedef struct queue queue;
void init(queue* queue); //初始化佇列
bool enqueue(queue *queue, int en_data); //入隊乙個整型數
bool enqueue_array(queue *queue,
int en_data,int array_size); //入隊乙個整型陣列
bool dequeue(queue* queue); //出隊
void print(queue* queue); //格式化輸出佇列
/** queue 需要操作的佇列指標
* */
void init(queue* queue)
/** queue 需要操作的佇列指標
* en_data 需要入隊的整型數
* 返回值 入隊成功返回true,失敗返回false
* */
bool enqueue(queue* queue, int en_data)
//入隊會導致資料溢位時,入隊失敗
if(queue->tail>= datasize)
//入隊,tail+1,size+1
queue->data[queue->tail++]=en_data;
queue->size++;
return true;}/*
* queue 需要操作的佇列指標
* en_data 需要入隊的整型陣列
* array_size 整型陣列的大小
* 返回值 陣列入隊成功返回true,失敗返回false
* */
bool enqueue_array(queue *queue, int en_data,
int array_size)
//判斷佇列是否已經初始化,若沒有則初始化
if (!queue->initialled)
//入隊會導致資料溢位時,入隊失敗
if(queue->tail+array_size> datasize)
for (i = 0; i
initialled)||queue->size==0)
//隊頭top+1,size-1
queue->top++;
queue->size--;
return true;}/*
* queue 需要操作的佇列指標
* */
void print(queue* queue)
printf("queue print\n***************==\n");
printf("queue size: %d\n-----------------\n",
queue->size);
printf("queue data:\n");
if (queue->size==0)else
}printf("***************==\nend\n");
return;
}
這是具體測試的**:
#include "h_queue.h"
void test();
void test_array();
void test_error();
void main()
void test()
void test_array();
enqueue_array(&queue, array, 10);
print(&queue);
dequeue(&queue);
dequeue(&queue);
dequeue(&queue);
print(&queue);
return;
}void test_error()
//獲得乙個大小為佇列長度最大值的整型陣列
for ( i = 0; i < datasize; i++)
//將這個陣列入隊,列印佇列長度(大小)
enqueue_array(&queue, array, 1024);
printf("queue size: %d\n",queue.size);
//在佇列充滿之後入列乙個數
if(!enqueue(&queue, num))
//佇列中資料全部出列,列印佇列長度(大小)
for (i = queue.size; i >0; i--)
printf("queue size: %d\n",queue.size);
//資料全部出列後再次執行出列
if (!dequeue(&queue))
return;
}
佇列(c語言實現)
目錄前言 一 佇列是什麼?二 佇列的屬性與操作以及種類 1.佇列屬性 2.佇列操作 3.佇列種類 三 佇列的實現 c語言 總結 本文旨在幫助剛接觸佇列的人更快的掌握,語言不夠嚴謹,望海涵。栗子 一對情侶準備在情人節去電影院看電影,男的是個身穿格仔衫的程式設計師,我們就稱之為小木,由於排隊買票的人特別...
佇列 c語言實現
佇列 先進先出 define minquesize 5 typedef struct treenode elemtype typedef struct myqueue myqueue creatqueue int capacity myqueue res malloc sizeof myqueue ...
C語言實現佇列
1 ifndef queue h 2 define queue h 34 include 5 6 typedef int qdatatype 資料型別 78 typedef struct listnode 通過鍊錶實現的 9listnode,plistnode 1314 typedef struct...