隊列是一種特殊的線性表
隊列僅線上性表的兩端進行操作
隊頭(Front):取出資料元素的一端
隊尾(Rear):插入資料元素的一端
隊列不允許在中間部位進行操作!
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隊列模型和連結清單模型關系分析
隊列的順序存儲設計與實作
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); |