佇列基本操作

2021-07-16 00:03:06 字數 1976 閱讀 5001

鏈式儲存

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...

佇列的基本操作

鏈式儲存 typedef int qelemtype typedef int status 具體資料型別具體定義 typedef struct qnode 佇列結點結構體 qnode,queueptr typedef struct 鏈佇列型別 linkqueue status initqueue l...