c语言实现通用数据结构(二):通用队列
2014-03-30 23:15
881 查看
这是在通用链表的基础上实现的队列,关于链表的实现参见:http://blog.csdn.net/swwlqw/article/details/22498833。
注意队列中只存储了指针,没有储存实际的数据。
头文件 myQueue.h
源文件 myQueue.c
测试文件 main.c
注意队列中只存储了指针,没有储存实际的数据。
头文件 myQueue.h
#ifndef MYQUEUE_H_INCLUDED #define MYQUEUE_H_INCLUDED #include "myList.h" typedef MyList MyQueue; //创建队列 MyQueue * createMyQueue(); //释放队列 void freeMyQueue(MyQueue * queue); //插入 void myQueueAdd(MyQueue* const queue, void* const data); //删除 void* myQueueRemove(MyQueue * const queue); //取得队头 void* myQueueGetTop(const MyQueue * const queue); #endif // MYQUEUE_H_INCLUDED
源文件 myQueue.c
#include "myQueue.h" //创建队列 MyQueue * createMyQueue() { return createMyList(); } //释放队列 void freeMyQueue(MyQueue * queue) { freeMyList(queue); } //插入 void myQueueAdd(MyQueue* const queue, void* const data) { myListInsertDataAtLast(queue, data); } //删除 void* myQueueRemove(MyQueue * const queue) { return myListRemoveDataAtFirst(queue); } //取得队头 void* myQueueGetTop(const MyQueue * const queue) { return myListGetDataAtFirst(queue); }
测试文件 main.c
/************************* *** File main.c *** test for MyQueue **************************/ #include <stdio.h> #include <stdlib.h> #include "myQueue.h" typedef struct a { int i; char c; } A; int main() { const int S =10; //创建并初始化数据 A * data= malloc(sizeof(A)*S); for (int i=0; i< S; i++) { data[i].i=i; data[i].c=(char)('A'+i); } //创建队列 MyQueue * queue= createMyQueue(); //插入数据 myQueueAdd(queue, &data[0]); myQueueAdd(queue, &data[2]); myQueueAdd(queue, &data[6]); //测试删除 while(myListGetSize(queue)) { A * pp = myQueueRemove(queue); printf("%d[%c] ", pp->i, pp->c); } puts(""); //释放链表 freeMyQueue(queue); //释放数据 free(data); return 0; }
相关文章推荐
- c语言实现通用数据结构(五):通用映射(HashMap)
- 数据结构(Data structure):使用双向链表实现队列(C语言)
- c语言实现通用数据结构(一):通用链表
- 数据结构之循环队列c语言实现
- 数据结构之---C语言实现循环队列
- 用C语言模块实现队列数据结构
- 数据结构之队列的实现(c语言)
- c语言实现通用数据结构(四):通用集合(HashSet)
- 数据结构.循环队列(C语言实现)
- 五、数据结构基础之循环队列C语言实现
- 数据结构——队列的链式实现(C语言)
- 六、数据结构基础之链队列C语言实现
- 数据结构——队列(C语言实现)
- c语言实现通用数据结构(三):通用椎栈
- C语言实现通用数据类型栈结构
- c语言实现通用数据结构(五):通用映射(HashMap)
- c语言实现通用数据结构(一):通用链表
- 数据结构之队列(C语言实现)
- 数据结构与C语言实现(二)——堆栈和队列
- 数据结构基础(5)--C语言实现循环队列--静态