我們實現了順序佇列,包括優化,現在我們再來學習下鏈式佇列。
注:這裡還是要包含前面我們實現的鏈式鍊錶的標頭檔案和實現檔案。
第十個例子,鏈式佇列的實現:
標頭檔案
#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 將...