c语言实现通用数据结构(二):通用队列
来源:互联网 发布:淘宝天猫后台操作流程 编辑:程序博客网 时间:2024/05/01 18:29
这是在通用链表的基础上实现的队列,关于链表的实现参见:http://blog.csdn.net/swwlqw/article/details/22498833。
注意队列中只存储了指针,没有储存实际的数据。
头文件 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;}
0 0
- c语言实现通用数据结构(二):通用队列
- c语言实现通用数据结构(一):通用链表
- c语言实现通用数据结构(三):通用椎栈
- c语言实现通用数据结构:通用映射(HashMap)
- c语言实现通用数据结构(一):通用链表
- c语言实现通用数据结构:通用集合(HashSet)
- c语言实现通用数据结构(四):通用集合(HashSet)
- c语言实现通用数据结构(五):通用映射(HashMap)
- c语言实现通用数据结构(五):通用映射(HashMap)
- C语言实现通用数据结构的高效设计
- 迷宫问题的通用解法C语言数据结构实现
- 实现一个通用的生产者消费者队列(c语言版本)
- 数据结构6.通用队列
- C语言实现通用链表初步(二)
- c语言数据结构之通用链表
- 通用数据结构树—Java语言实现
- 通用数据结构树—Java语言实现
- 一个通用纯C队列的实现
- IDEA 快捷键整理
- c++ extern关键字
- Linux下利用backtrace追踪函数调用堆栈以及定位段错误
- AS3.0 LoaderContext
- Vijos 1034 家族
- c语言实现通用数据结构(二):通用队列
- Oracle的pipelined函数提升数据输出性能
- OSX:一个有关AirPrint,DNS,Bonjour的文章连接
- hdu 1087 Super Jumping! Jumping! Jumping!
- saltstack入门文档
- DBUtils – BeanProcessor扩展,支持自定义字段映射
- woj 1540 Fibonacci 矩阵快速幂
- Windows驱动中的Crash回调
- USCOJ 1063: 外星人的密码数字(1.0版本)