佇列小記二之環形結構

2021-07-03 21:14:24 字數 621 閱讀 1978

接上文,線性結構的一種提高記憶體使用效率的辦法是使用環形結構,為了解決front與rear重合的判定問題,以下**使用空出乙個element的方式,為了使用方便,element使用整形;

#define size 100

struct fifo ;

//初始化佇列

void init(struct fifo *fifo)

//進隊

int put(struct fifo *fifo, int

value)

fifo->data[fifo->rear] = value;

fifo->rear = (fifo->rear + 1) % size;

return0;}

//出隊

intget(struct fifo *fifo)

intvalue = fifo->data[fifo->front];

fifo->front = (fifo->front + 1) % size;

return

value;

}

線性表有順序儲存和鏈式儲存,佇列作為一種特殊的線性表,也存在兩種儲存方式,使用場景各有不同,在下乙個話題將使用鏈式儲存結構;

資料結構之佇列和環形佇列

佇列實現 1.佇列是一種有序列表,遵循先進先出的原則。1.陣列模擬佇列,分別有隊頭和隊尾指標,從 1開始,進隊時隊尾指標自增,出隊時隊頭指標自增,隊頭是指向第乙個資料的前乙個位置。示意圖如下 package array public class queuearray 使用陣列模擬佇列 編寫乙個arr...

golang資料結構之環形佇列

目錄結構 circlequeue 環型佇列 type circlequeue struct push 向佇列中新增乙個值 func q circlequeue push val int err error q.array q.rear val 隊尾不包含元素 q.rear q.rear 1 q.ma...

資料結構之GO實現環形佇列

環形佇列是 佇列的一種特殊形式。首先介紹佇列,然後引申出迴圈佇列。佇列又稱為 先進先出 fifo 線性表 限定插入操作只能在隊尾進行,而刪除操作只能在隊首進行 佇列也可以採用順序儲存結構或鍊錶結構來實現,分別稱為順序佇列和鏈佇列,下面就來簡單實現。package main import errors...