佇列是一種先進先出的線性表,它只能從隊尾插入資料,從隊首獲取資料。
使用動態陣列來儲存佇列,入隊即是尾插,出隊即是頭刪,獲取隊頭即是陣列的第乙個元素。
需要實現的介面
初始化、入隊、出隊、獲取隊頭、獲取隊尾、佇列大小、銷毀佇列
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.訪問隊尾...