寫了乙個基於鍊錶的佇列,非常簡單,只提供了初始化,判斷是否為空,銷毀,入隊和出隊操作,可以很容易的嵌入到工程中去。
只提供了很少的注釋,好的**是可以自注釋的,另外如果對於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...