3 7帶標誌的迴圈佇列的插入刪除操作

2021-10-23 19:50:43 字數 1032 閱讀 8625

題目:假設以陣列q[m]存放迴圈佇列中的元素, 同時設定乙個標誌tag,以tag == 0和tag == 1來區別在隊頭指標(front)和隊尾指標(rear)相等時,佇列狀態為「空」還是「滿」。試編寫與此結構相應的插入(enqueue)和刪除(dequeue)演算法。

思路:當tag等於0並且頭指標和尾指標指向同一位置時,隊空;當tag等於1並且頭指標和尾指標指向同一位置時,隊滿。

佇列的結構:

#define maxsize 100;

typedef

struct queuequeue;

佇列初始化:

status initqueue

(queue &q)

佇列判空:

bool

isempty

(queue q)

return

false

;}

佇列判滿:

bool

isfull

(queue q)

return

false

;}

入隊:

status enqueue

(queue &q,elemtype n)

q.data[q.rear]

=n; q.rear=

(q.rear+1)

%maxsize;

if(q.rear==q.front)

return ok;

}

出隊:

status dequeue

(queue &q,elemtype &e)

e=q.data[q.front]

; q.front=

(q.front+1)

%maxsize;

if(q.front==q.rear)

return ok;

}

佇列的插入 刪除操作

include using namespace std typedef int elemtype typedef struct node qnode,queueptr typedef struct linkqueue void initqueue linkqueue q int isempty li...

附加判定標誌的迴圈佇列的基本操作

描述 假設以陣列q m 存放迴圈佇列中的元素,同時設定乙個標誌tag,以tag 0和tag 1來區別在隊頭指標 front 和隊尾指標 rear 相等時,佇列狀態為 空 還是 滿 試編寫與此結構相應的插入 enqueue 和刪除 dlqueue 演算法。輸入多組資料,每組資料有兩行。第一行為乙個整數...

帶刪除的優先佇列(延緩刪除,加標記)

本文就不講優先佇列的基本用法了,主要講一下怎麼加標記。具體的應用環境就是給你乙個佇列 或者棧 不斷的加入元素,同時也有可能刪除元素,同時還可能詢問這個佇列裡面的最大值。你求最大值是不能去直接遍歷的,因為會超時,這樣就只能用優先佇列加標記了。具體的做法是 維護兩個優先佇列,乙個是最大值佇列,乙個是刪除...