大話資料結構 佇列

2021-09-25 05:14:21 字數 898 閱讀 2286

佇列(queue):只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。(fifo結構)

adt 佇列 (queue)

data

operation

initqueue(*q) :初始化操作,建立乙個空佇列q。

destroyqueue(*q) :若佇列q存在,則銷毀它。

clearqueue(*q) :將佇列q清空。

queueempty(q) :若佇列q為空,返回true,否則返回false。

gethead(q,*e) :若佇列q存在且非空,用e返回佇列q的隊頭元素。

enqueue(*q,e) :若佇列q存在,插入新元素e到佇列q中並成為對尾元素 。

dequeue(*q,*e) :刪除佇列q中隊頭元素,並用e返回其值。

queuelength(q) :返回佇列q的元素個數

endadt

為了解決假溢位,把佇列頭尾相接的順序儲存結構。

typedef int qelemtype;

typedef struct

sqqueue;

typedef int qelemtype;

typedef struct qnode

qnode, *queueptr;

typedef struct

linkqueue;

入隊操作:
status enqueue(linkqueue *q, qelemtype e)

出隊操作:
status dequeue(linkqueue *q, qelemtype e)

大話資料結構 佇列

佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的線性表,簡稱fifo。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。佇列的抽象資料型別 adt 佇列 queue data 同線性表。元素具有相同的型別,相鄰元素具有前驅和後繼的關係。operation initq...

大話資料結構 棧與佇列

文章知識點來至於大話資料結構裡邊章節知識,這篇主要介紹棧與佇列在計算機中儲存形式,以及在某些演算法領域中對棧和佇列的相關應用。章節最後介紹了著名的逆波蘭表示式,以及通過演算法來實現該表示式的運算過程。在實現 的同時新增了流程圖。相關 原始碼請檢視文章最後。1 棧結構定義 2 棧的順序儲存 3 兩棧共...

大話資料結構 迴圈佇列 2020 6 28

佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的線性表,簡稱fifo first in first out 允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。佇列順序儲存結構的不足 入隊操作時間複雜度為o 1 出隊操作時間複雜度為o n 因此,使用迴圈...