C語言基於鍊錶的佇列

2021-06-23 03:58:00 字數 1484 閱讀 3969

寫了乙個基於鍊錶的佇列,非常簡單,只提供了初始化,判斷是否為空,銷毀,入隊和出隊操作,可以很容易的嵌入到工程中去。

只提供了很少的注釋,好的**是可以自注釋的,另外如果對於c語言和佇列這個資料結構較熟悉的話,看懂我的**裡的一些指標操作是很容易的。

在最下面提供了乙個測試程式,也可以看成使用指南,

queue.h

/*************************************

*基於鍊錶的佇列

*日期:2014-08-10

*************************************/

#ifndef _queue_header_h_

#define _queue_header_h_

struct node;

typedef struct node* queue;

typedef struct node* pnode;

typedef int elemtype;

struct node

;pnode initqueue(); // 初始化佇列

int isempty(queue q); // 判斷是否為空,返回值,空:true;非空:false

void destroyqueue(queue q); // 銷毀這個佇列

elemtype dequeue(queue q); // 出隊

void enqueue(queue q, elemtype e); // 入隊

#endif

queue.c

#include #include #include #include #include "queue.h"

pnode initqueue()

int isempty(queue q)

void destroyqueue(queue q)

free(q);

}elemtype dequeue(queue q)

elemtype tmp = p->elem;

free(p);

return tmp;

}void enqueue(queue q, elemtype e)

p->next = ptmp;

}

main.c

#include #include #include "queue.h"

int main()

while (!isempty(myqueue))  // 出隊操作 

destroyqueue(myqueue);    // 銷毀佇列

return 0;

}

測試結果:

鍊錶 基於C語言

最近複習了c語言的一些知識,使用c語言實現了資料結構中的鍊錶。下面是main.c檔案 include linklist.h include intmain printf len d n n linklistlength list for i 0 i 5 i printf len d n n link...

雙向鍊錶 基於C語言

最近複習了c語言的相關知識,實現了資料結構裡面的雙向鍊錶。下面是main.c檔案 include duallinklist.h include intmain printf 開始列印鍊錶 n i 0 for duallinklistmove list,duallinklistlength list ...

C語言基於鍊錶的棧

學習資料結構與演算法時實現的棧,參考書目 資料結構與演算法分析 c語言描述 以及在後面會分析我遇到的乙個問題。標頭檔案 stack.h 功能 基於鍊錶的棧,棧頂在表頭 ifndef stack header h define stack header h typedef struct node pn...