天天看點

隊列queue

隊列是一種特殊的線性表  

隊列僅線上性表的兩端進行操作

隊頭(Front):取出資料元素的一端

隊尾(Rear):插入資料元素的一端

隊列不允許在中間部位進行操作!

隊列queue

queue常用操作

銷毀隊列

清空隊列

進隊列

出隊列

擷取隊頭元素

擷取隊列的長度

C語言描述=====》隊列的設計與實作  人生财富庫積累

#ifndef _MY_QUEUE_H_

#define _MY_QUEUE_H_

typedef void Queue;

Queue* Queue_Create();

void Queue_Destroy(Queue* queue);

void Queue_Clear(Queue* queue);

int Queue_Append(Queue* queue, void* item);

void* Queue_Retrieve(Queue* queue);

void* Queue_Header(Queue* queue);

int Queue_Length(Queue* queue);

#endif //_MY_QUEUE_H_

3.2.3隊列模型和連結清單模型關系分析

隊列queue

隊列的順序存儲設計與實作

1基本概念

隊列也是一種特殊的線性表;可以用線性表順序存儲來模拟隊列。

2設計與實作

#ifndef _MY_SEQQUEUE_H_

#define _MY_SEQQUEUE_H_

typedef void SeqQueue;

SeqQueue* SeqQueue_Create(int capacity);

void SeqQueue_Destroy(SeqQueue* queue);

void SeqQueue_Clear(SeqQueue* queue);

int SeqQueue_Append(SeqQueue* queue, void* item);

void* SeqQueue_Retrieve(SeqQueue* queue);

void* SeqQueue_Header(SeqQueue* queue);

int SeqQueue_Length(SeqQueue* queue);

int SeqQueue_Capacity(SeqQueue* queue);

#endif //_MY_SEQQUEUE_H_

3.2.5隊列的鍊式存儲設計與實作

隊列也是一種特殊的線性表;可以用線性表鍊式存儲來模拟隊列的鍊式存儲。

#ifndef _MY_LINKQUEUE_H_

#define _MY_LINKQUEUE_H_

typedef void LinkQueue;

LinkQueue* LinkQueue_Create();

void LinkQueue_Destroy(LinkQueue* queue);

void LinkQueue_Clear(LinkQueue* queue);

int LinkQueue_Append(LinkQueue* queue, void* item);

void* LinkQueue_Retrieve(LinkQueue* queue);

void* LinkQueue_Header(LinkQueue* queue);