1、佇列是先進先出,棧是後進先出。
2、佇列的操作還是入佇列和出佇列,入佇列就把資料放到佇列的尾部,出佇列就把佇列中的第乙個資料拿出來。
佇列需要兩個標識,top和tail,分別標識佇列的第乙個元素和最後乙個元素的下一位置,方便佇列的操作
3、以下是佇列的基本操作
//說明:佇列的尾指標並不是指向佇列的最後乙個元素,而是指向佇列最後乙個元素的下乙個,由於這裡所說的指標並不是乙個真正的指標,而是陣列的下標,所以就不存在越界的問題。
#include #define max 5 //定義了佇列的大小,這裡的佇列就是乙個陣列
//入佇列
int enqueue(int *a,int tail,int data)
a[tail] = data; //入隊
tail++; //尾指標後移一位
return tail; //返回尾指標
}//出隊
int dequeue(int *a,int tail)
printf("dequeue data:%d\n",a[0]); //取出第乙個元素
for(int i = 0;i4、鏈佇列,即使用鍊錶實現佇列儲存結構。
鏈佇列,需要top指標和tail指標分別指向鍊錶的頭和尾,在建立鏈佇列的時候最好第乙個元素不要存資料,這樣講簡化操作,更好理解。
5、鏈佇列相關操作
#include typedef struct queuequeue;
queue *enqueue(queue *tail, int data)
queue *dequeue(queue *top)
top->next =drop->next;
printf("dequeue data %d\n",drop->data);
free(drop);
return top;
}int main(int argc,char**ar**)
JAVA資料結構 先進先出佇列
佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。下面直接來看實現 先進先出佇列 author white version id myqu...
先進先出的排隊結構 佇列(Queue)
與棧 後進先出 lifo 的特性相對應,應當還有一種 先進先出 fifo 特性的資料結構,這種資料結構被稱之為佇列 queue 該結構的實現過程與棧幾乎類似,區別在於每次存入元素和獲取元素的位置不同。結構型別 線性結構 底層實現 動態陣列 arraylist 核心方法 public void enq...
資料結構 線性表 佇列
一 佇列簡介 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。include include typede...