佇列相關基礎內容參我的博文:佇列順序儲存 - 設計與實現 - api函式
佇列也是一種特殊的線性表;可以用線性表鏈式儲存來模擬佇列的鏈式儲存。
主要**:
// linkqueue.h
// 佇列鏈式儲存api宣告
#ifndef _linkqueue_h_
#define _linkqueue_h_
typedef void linkqueue;
// 建立佇列
linkqueue* linkqueue_create();
// 銷毀佇列
void linkqueue_destroy(linkqueue* queue);
// 清空佇列
void linkqueue_clear(linkqueue* queue);
// 入佇列
// 出佇列
void* linkqueue_retrieve(linkqueue* queue);
// 獲取對頭元素
void* linkqueue_header(linkqueue* queue);
// 獲取佇列長度
int linkqueue_length(linkqueue* queue);
#endif //_my_linkqueue_h_
// linkqueue.cpp
// 佇列鏈式儲存api實現
// 呼叫了鏈式儲存線性表
#include #include "linkqueue.h"
#include "linklist.h"
#include typedef struct _tag_linkqueue
tlinkqueue;
// 建立佇列相當於建立鍊錶
linkqueue* linkqueue_create()
// 銷毀佇列相當於建立鍊錶
void linkqueue_destroy(linkqueue* queue)
// 清空佇列相當於清空鍊錶
void linkqueue_clear(linkqueue* queue)
}// 入佇列相當於在鍊錶尾部插入元素
tmp->item = item;
ret = linklist_insert(queue, (linklistnode *)tmp, linklist_length(queue));
if (ret)
return ret;
}// 出佇列相當於刪除鍊錶0號位置的元素
void* linkqueue_retrieve(linkqueue* queue)
item = tmp->item;
free(tmp); // 不要忘記出佇列的時候釋放結點
return item;
}// 獲取隊頭元素相當於獲取鍊錶0號位置元素
void* linkqueue_header(linkqueue* queue)
return tmp->item;
}// 獲取佇列長度
int linkqueue_length(linkqueue* queue)
// main.cpp
// 佇列鏈式儲存api測試程式
#include #include "linkqueue.h"
const int maxn = 10;
void play()
lq = linkqueue_create(); // 建立佇列
// 入佇列
for (i = 0; i < maxn; ++i)
// 佇列屬性
printf("header: %d\n", *((int *)linkqueue_header(lq)));
printf("length: %d\n", linkqueue_length(lq));
// 出佇列
while (linkqueue_length(lq))
// 銷毀佇列
linkqueue_destroy(lq);
}int main()
相關工程**:github
線性表鏈式儲存設計與實現 API實現
基本概念 鏈式儲存定義 為了表示每個資料元素與其直接後繼元素之間的邏輯關係,每個元素除了儲存本身的資訊外,還需要儲存指示其直接後繼的資訊。表頭結點 鍊錶中的第乙個結點,包含指向第乙個資料元素的指標以及鍊錶自身的一些資訊 資料結點 鍊錶中代表資料元素的結點,包含指向下乙個資料元素的指標和資料元素的資訊...
佇列順序儲存 設計與實現 API函式
queue經常使用操作 銷毀佇列 清空佇列 進佇列出佇列 獲取隊頭元素 獲取佇列的長度 佇列也是一種特殊的線性表 能夠用線性表順序儲存來模擬佇列。主要 seqqueue.h 順序儲存佇列api宣告 ifndef my seqqueue h define my seqqueue h typedef v...
Java佇列 鏈式儲存實現
佇列介面 public inte ce queue 鍊錶介面 public inte ce node 隊列為空丟擲該異常 public class queueemptyexception extends runtimeexception 單鏈表的定義 public class slnode impl...