八 資料結構 線性表 佇列(先進先出)

2021-10-04 02:15:23 字數 1129 閱讀 6532

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...