資料結構之鏈式佇列

2021-06-22 12:45:35 字數 1582 閱讀 4106

我們實現了順序佇列,包括優化,現在我們再來學習下鏈式佇列。

注:這裡還是要包含前面我們實現的鏈式鍊錶的標頭檔案和實現檔案。

第十個例子,鏈式佇列的實現:

標頭檔案

#ifndef _linkqueue_h_

#define _linkqueue_h_

typedef void linkqueue;

linkqueue* linkqueue_create();

void linkqueue_destroy(linkqueue* queue);

void linkqueue_clear(linkqueue* queue);

int linkqueue_length(linkqueue* queue);

void* linkqueue_retrieve(linkqueue* queue);

void* linkqueue_header(linkqueue* queue);

#endif

實現檔案

#include "linklist.h"

#include "linkqueue.h"

#include #include typedef struct tag_linkqueuenode

tlinkqueuenode;

linkqueue* linkqueue_create()

void linkqueue_destroy(linkqueue* queue)

void linkqueue_clear(linkqueue* queue) }

int linkqueue_length(linkqueue* queue)

else

return ret;

}void* linkqueue_retrieve(linkqueue* queue)

return ret;

}void* linkqueue_header(linkqueue* queue)

return ret;

}

是不是跟前面的鏈式棧很類似!!!

測試檔案

#include #include #include "linkqueue.h" 

int main(int argc, char *argv)

; int i = 0;

for (i = 0; i < 10; i++)

printf("length:%d\n", linkqueue_length(queue));

printf("header:%d\n", *((int*)linkqueue_header(queue)));

while (linkqueue_length(queue) > 0)

linkqueue_clear(queue);

linkqueue_destroy(queue);

system("pause");

return 0;

}

好了,鏈式佇列實現完畢,看過前面順序佇列的應該知道,這裡面還是涉及到時間複雜度問題,

資料結構之佇列(鏈式儲存)

一 佇列結點package linkedqueue packagname linkedqueue classname linkedqueuenode date 2017 1 25 author cullianns des 鏈式儲存結點結構 public class linkedqueuenode 二...

資料結構鏈式佇列

對佇列進行以下操作 1.入佇列 2.出佇列 3.取隊首元素 佇列先進先出,要想實現入佇列,從隊尾插入元素 要想實現出佇列,從隊首刪除元素。在這裡,我們定義頭尾指標,首先對空佇列插入元素,讓頭指標等於尾指標,如果非空,依然讓頭指標指向隊首,尾指標指向要插入的元素。刪除元素時,直接讓頭指標指向下乙個元素...

c 資料結構 鏈式佇列

1.標頭檔案 includeusing namespace std struct linknode linknode const int x,linknode ptr null date x link ptr class linkedqueue 建構函式 構造空佇列 void makeempty 將...