佇列的鏈式建立和操作

2021-07-24 08:23:55 字數 1847 閱讀 3378

之前完成了堆疊的建立和操作,現在開始實現佇列

佇列是:具有一定操作約束的線性表

其插入和刪除操作:只能在一端插入,而在另一端刪除

資料插入:入佇列

資料刪除:出佇列

先來先服務

先進先出:fifo(first in first out)

型別名稱:佇列(queue)

資料物件集:乙個有0個或者多個元素的有窮線性表

操作集,佇列q∈queue,元素item∈elementtype

1.queue createqueue();生成空佇列

2.int isfullq(queue q);判斷佇列q是否已滿

3.void addq(queue q,elementtype item);將元素item插入佇列q中

4.int isempty(queue q);判斷佇列q是否為空

5.elmenttype deleteq(queue q);將隊頭元素從佇列中刪除並返回

注意佇列始終是從front一段刪除,並且從rear一段插入,因為如果從rear一段刪除會找不到其上乙個節點

#include #include #define error 0

struct node;

struct qnode;

typedef struct qnode *queue;

//建立佇列

queue createqueue();

//刪除佇列頭元素

int deleteq(queue ptrq);

//在隊尾插入元素

void insertq(int item,queue ptrq);

//列印佇列

void print(queue ptrq);

//判斷是否空

int isempty(queue q);

int main()

queue createqueue();

int deleteq(queue ptrq)

frontcell=ptrq->front;

if(ptrq->front==ptrq->rear)

ptrq->front=ptrq->rear=null;

else

frontelem=frontcell->data;

free(frontcell);

return frontelem;

}

void insertq(int item,queue ptrq)

else

};

void print(queue ptrq)

while (q1 != ptrq->rear)

printf("%d", q1->data);

putchar('\n');

}

int isempty(queue q);

上面的**已經把佇列的鏈式表示基本的函式全部包含在內了,下面是執行結果

佇列基本搞定,哦耶

鏈式佇列的操作實現

操作實現結果 一 執行後的效果 二 入列 三 出列 四 取隊頭元素 程式是鏈式的佇列的 include include include using namespace std typedef int datatype 定義datatype 為整型 建立鏈式佇列的節點的結構體的定義如下 typedef...

鏈式佇列的基本操作

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

鏈式佇列的基本操作

操作介紹 1 建立乙個鏈式佇列 2 入隊乙個元素 3 出隊乙個元素 4 獲取隊首元素 5 清空佇列 6 判斷佇列是否為空 7 求佇列長度 8 輸出當前的佇列 9 退出作業系統 include include using namespace std typedef struct qnode 結點結構 ...