資料結構 佇列

2021-08-15 11:47:17 字數 797 閱讀 9803

佇列(quence)是只允許在前端(front)進行插入操作,而在另一端尾端(rear)進行刪除操作的線性表。佇列是一種先進先出(first  in first out)的線性表,簡稱fifo。佇列分為順序佇列和迴圈佇列。

順序佇列:每次插入,指標rear加一,每次刪除,指標front加一;

初始化時,rear = front=0,當佇列不為空時,front指向佇列中的第乙個元素,rear指向佇列中最後乙個元素的下乙個位置,當佇列滿時 rear=front,但不一定是位置0;

插入後rear+1,刪除後front+1,但是,無論是刪除還是插入,一旦rear或front加一超過了所分配的空間,則讓指標指向這片空間的起始位置;設所分配的空間為maxsize,一旦rear+1,或front+1 =maxsize, 則rear或front指向起始位置;如上圖,當front和rear都在位置3事,此時如果想要插入,則判斷3+1=4 與maxsize 4的關係,相等,則rear=0,這個可以通過取餘實現,rear=(rear+1)%maxsize;

因此,迴圈序列判空的方法是rear = front; 判滿的方法是 (rear+1)%maxsize ==front;

進佇列步驟: 1.判斷佇列是否滿,即,rear+1是否等於front,若等於則佇列已滿,不允許進入;2. 若不滿,則將值儲存至rear+1的位置 ; 從這裡也可以看出,迴圈數列所能儲存的值其實是最大值-1, 如上圖所示, maxsize是4, 若front =0, rear =3,這是位置3為空,但是判斷的3+1 =4,則rear=(rear+1)%4 =0,則rear = front,顯示佇列已滿,所以不能再插入,而其實還有乙個空位

資料結構 佇列

一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...

資料結構 佇列

資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...

資料結構 佇列

code for fun created by dream whui 2015 1 25 include stdafx.h include include using namespace std define true 1 define false 0 define ok 1 define erro...