7 佇列 順序儲存

2022-09-19 14:57:10 字數 2070 閱讀 7729

佇列是一種先進先出的線性表,它只能從隊尾插入資料,從隊首獲取資料。

使用動態陣列來儲存佇列,入隊即是尾插,出隊即是頭刪,獲取隊頭即是陣列的第乙個元素。

需要實現的介面

初始化、入隊、出隊、獲取隊頭、獲取隊尾、佇列大小、銷毀佇列
myqueue.c
#include"myqueue.h"

#include"mydynamicarray.h" //使用之前的動態陣列篇的**

#include //初始化

seqqueue* init_queue()

//入隊

void enqueue(seqqueue queue, void* data)

struct mydynamicarray* arr = queue;

insert_mda(arr, arr->m_size, data); //入列--尾插

}//出隊

void dequeue(seqqueue queue)

struct mydynamicarray* arr = queue;

removebypos_mda(arr,0); //出列--頭刪

}//獲取隊頭

void* front_queue(seqqueue queue)

struct mydynamicarray* arr = queue;

return arr->paddr[0]; //陣列第乙個元素

}//獲取隊尾

void* back_queue(seqqueue queue)

struct mydynamicarray* arr = queue;

return arr->paddr[arr->m_size-1]; //陣列最後乙個元素

}//獲取大小

int size_queue(seqqueue queue)

struct mydynamicarray* arr = queue;

return arr->m_size;

}//銷毀佇列

void destory_queue(seqqueue queue)

struct mydynamicarray* arr = queue;

erasure_mda(arr);

}

myqueue.h
#ifndef __my_queue_h

#define __my_queue_h

#define max_len 50

typedef void* seqqueue;

seqqueue* init_queue(void);

void enqueue(seqqueue queue, void* data);

void dequeue(seqqueue queue);

void* front_queue(seqqueue queue);

void* back_queue(seqqueue queue);

int size_queue(seqqueue queue);

void destory_queue(seqqueue queue);

#endif

start0.c
#include"myqueue.h"

#includestruct persion;

int main();

struct persion p2 = ;

struct persion p3 = ;

struct persion p4 = ;

enqueue(queue, &p1); //入隊

enqueue(queue, &p2);

enqueue(queue, &p3);

enqueue(queue, &p4);

while(size_queue(queue) > 0)

destory_queue(queue);

return 0;

}

24 佇列的順序儲存

main.c define crt secure no warning include include include include seqqueue.h typedef struct person person intmain person p2 person p3 person p4 pers...

佇列(二)佇列的鍊錶儲存

include define false 0 define ok 1 定義佇列每個節點的結構 typedef struct node node,qnode 相當於typedef struct node qnode 定義整個佇列結構 typedef struct squeue squeue 建立乙個空...

C 基礎 7 佇列Queue的用法

一.基本用法 1.初始化佇列 queueq 2.插入元素 queueq q.push 1 q.push 2 3.刪除元素 queueq q.push 1 q.push 2 q.pop 彈出隊尾元素 2 4.訪問隊首元素 queueq q.push 1 q.push 2 q.front 15.訪問隊尾...