31 鏈式佇列的基本操作實現

2021-08-20 20:21:28 字數 2458 閱讀 3934

linkqueue.h檔案

#ifndef linkqueue_h

#define linkqueue_h

#include

#include

#include

//定義節點的儲存結構

typedef

struct linkqueuenode

linkqueuenode;

//定義鏈式佇列的儲存結構

typedef

struct linkqueue

linkqueue;

//初始化鏈式佇列

linkqueue *init_linkqueue();

//銷毀佇列

void free_linkqueue(linkqueue *queue);

//判斷佇列是否為空

int isempty_linkqueue(linkqueue *queue);

//入隊

void insert_linkqueue(linkqueue *queue , void *data);

//出隊

void remove_linkqueue(linkqueue *queue);

#endif

linkqueue.c檔案

#include "linkqueue.h"

//初始化鏈式佇列

linkqueue *init_linkqueue()

//銷毀佇列

void free_linkqueue(linkqueue *queue)

if(queue->front == null)

//delnode記錄要刪除的節點

linkqueuenode *delnode = queue->front;

while(delnode != null)

free(queue);

queue = null;

}//判斷佇列是否為空

int isempty_linkqueue(linkqueue *queue)

if(queue->rear == null)

return1;}

//入隊

void insert_linkqueue(linkqueue *queue , void *data)

linkqueuenode *temp = (linkqueuenode *)malloc(sizeof(linkqueuenode));

temp->data = data;

temp->next = null;

//佇列是否為空

if(queue->rear == null)

//佇列不為空

else

}//出隊

void remove_linkqueue(linkqueue *queue)

if(queue->rear == null)

linkqueuenode *delnode = queue->front;

//判斷佇列中是否只有乙個節點

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

else

free(delnode);

delnode = null;

}

main.c檔案

#include "linkqueue.h"

typedef

struct student

student;

int main(void)

; student s2 = ;

student s3 = ;

student s4 = ;

printf("---------------入隊--------------\n\n");

//資料入隊

insert_linkqueue(queue , (void *)&s1);

insert_linkqueue(queue , (void *)&s2);

insert_linkqueue(queue , (void *)&s3);

insert_linkqueue(queue , (void *)&s4);

printf("---------------出隊--------------\n");

while(queue->rear != null)

printf("---------------釋放佇列--------------\n");

//釋放佇列

free_linkqueue(queue);

return

0;}

測試結果:

鏈式佇列的基本操作

佇列 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 結點結構 ...

鏈式佇列的操作實現

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