佇列的基本操作

2021-07-16 12:59:45 字數 1978 閱讀 9313

鏈式儲存

typedef int qelemtype;

typedef int status;//具體資料型別具體定義

typedef struct qnode//佇列結點結構體

qnode, *queueptr;

typedef struct   // 鏈佇列型別

linkqueue;

status initqueue (linkqueue &q) // 構造乙個空佇列q

status enqueue (linkqueue &q, qelemtype e)// 插入元素e為q的新的隊尾元素

status dequeue (linkqueue &q,   qelemtype &e)//若佇列不空,則刪除q的隊頭元素,用 e 返回其值

status gethead(linkqueue q,qelemtype &e)// 若佇列不空,則用e返回q的隊頭元素,並返回ok,否則返回error

status queueempty(linkqueue q)  // 若q為空佇列,則返回1,否則返回0

void clearqueue(linkqueue &q) // 將q清為空佇列

}status destroyqueue(linkqueue  &q)//銷毀佇列

return 1;

}int queuelength(linkqueue q)  // 求佇列的長度

return i;

}順序儲存(迴圈佇列--解決假溢位問題)

1. 頭指標指向隊首元素,尾指標指向隊尾的下乙個位置。(這裡的指標可認為是陣列下標)

2. 為了區分隊滿與隊空,則定義乙個儲存空間為maxqsize大小的佇列只允許存放(maxqsize-1)個資料。

3. 判空條件為:if(q.front == q.rear) return true;

判滿條件為:if((q.rear+1) % maxqsize==q.front) return true;

4. 迴圈佇列的長度為:(q.read-q.front + maxqsize) % maxqsize

5. 當刪除對頭元素或者在對尾插入元素時指標均需向後移動:

(1). q.rear=(q.rear+1) % maxqsize;

(2). q.front=(q.front+1) % maxqsize;

initqueue(&q)//構造乙個空佇列q

gethead(q, &e)//獲取隊頭元素

enqueue(&q, e)//插入隊尾元素

dequeue(&q, &e)//刪除隊頭元素

destroyqueue(&q)//銷毀佇列

clearqueue(&q)//清空佇列

queueempty(q)//判斷佇列是否為空

queuelength(q)//求當前佇列長度

#define maxqsize  100  //最大佇列長度

typedef int qelemtype;

typedef int status;//具體資料型別具體定義

typedef struct

sqqueue;

status initqueue (sqqueue &q) // 構造乙個空佇列q

status enqueue(sqqueue &q, elemtype e)// 插入元素e為q的新的隊尾元素

status dequeue (sqqueue &q, elemtype &e)  // 若佇列不空,則刪除q的隊頭元素,用e返回其值

status gethead (sqqueue &q, elemtype &e)//取隊首元素

status queueempty (sqqueue &q)//判斷隊是否為空

void clearqueue(sqqueue &q)// 將q清為空佇列

void destroyqueue(sqqueue &q)// 銷毀佇列q,q不再存在

int queuelength(sqqueue q)  // 返回q的元素個數,即佇列的長度

佇列的基本操作

include stdafx.h includeusing namespace std typedef struct node typedef struct queue queue insertqueue queue q,char value return q queue deletequeue q...

佇列的基本操作

本程式主要是實現了迴圈佇列的基本操作,包括insert,remove,peek,size等操作 package demo3 class queue 插入操作 public void insert long j quearray rear j 佇列是在隊尾插入 nitems 刪除 public lon...

佇列的基本操作

佇列的基本概念 佇列 queue 也是運算受限的線性表。是一種先進先出 first in first out 簡稱fifo 的線性表。只允許在表的一端進行插入,而在另一端進行刪除。隊首 front 允許進行刪除的一端稱為隊首。隊尾 rear 允許進行插入的一端稱為隊尾。例如 排隊購物。作業系統中的作...