Queue队列 链式存储实现
来源:互联网 发布:物流信息发布平台源码 编辑:程序博客网 时间:2024/06/08 03:05
https://github.com/liutianshx2012/Algorithms-Data_structures/tree/master/Data_structures/src2
//// Queue.h// Algorithms&Data_structures//// Created by TTc on 15-2-2.// Copyright (c) 2015年 TTc. All rights reserved.//#ifndef __Algorithms_Data_structures__Queue__#define __Algorithms_Data_structures__Queue__#include <stdio.h>#include "list.h"typedef List Queue;/* Public Interface */#define queue_init list_init#define queue_destroy list_destroyint queue_enqueue(Queue *queue,const void *data);int queue_dequeue(Queue *queue,void **data);#define queue_peek(queue) ((queue) ->head == NULL? NULL:(queue)->head->data)#define queue_size list_size#endif /* defined(__Algorithms_Data_structures__Queue__) */
//// Queue.c// Algorithms&Data_structures//// Created by TTc on 15-2-2.// Copyright (c) 2015年 TTc. All rights reserved.//#include "queue.h"#include <stdlib.h>//入队操作intqueue_enqueue(Queue *queue,const void *data){ return list_ins_next(queue, list_tail(queue), data);}//出队操作intqueue_dequeue(Queue *queue,void **data){ return list_rem_next(queue, NULL, data);}
//// test_queue_main.c// //// Created by TTc on 16/5/25.////#include <string.h>#include <stdlib.h>#include <stdio.h>#include "list.h"#include "queue.h"/* destroy */void destroy(void *data){ printf("in destroy\n"); free(data); return;}/* main */int main(int argc, char **argv){ Queue queue; int *int_ptr = NULL; int ret; int i; //init queue queue_init(&queue, destroy); //enqueue; for(i = 0; i < 5; i++ ) { int_ptr = NULL; int_ptr = (int *)malloc(sizeof(int)); if( int_ptr == NULL ) return -1; printf("enqueue: data = %d\n",i); *int_ptr = i; ret = queue_enqueue(&queue, (void *)int_ptr); if( ret != 0 ) return -1; } printf("the size of the queue: %d\n", queue_size(&queue)); for(i = queue_size(&queue); i > 0 ; i-- ) { int_ptr = NULL; ret = queue_dequeue(&queue, (void **)&int_ptr); if( ret != 0 ) return -1; printf("i = %d, dequque data = %d\n",i, *int_ptr); } printf("after dequeue the size of the queue: %d\n",queue_size(&queue)); return 0;}
0 0
- Queue队列 链式存储实现
- 循环队列Queue–使用链式存储结构实现
- 队列链式存储实现
- 基于List实现适配器queue(链式队列)
- 单链表实现队列链式存储
- queue-c链式队列
- 链式队列(Linked Queue)
- 队列(链式存储)C++模板实现
- 链式队列存储实现及操作
- 队列的链式存储结构C++实现
- C++实现队列之链式存储结构
- 队列(链式存储) java实现
- 循环队列的链式存储实现
- 队列的链式存储结构及实现
- 队列的链式存储结构及实现
- 队列的链式存储实现c语言
- 队列操作的实现-链式存储
- 基于List实现适配器Queue(链式队列)
- Tomcat中JVM内存溢出及合理配置
- Spring中的过滤器介绍
- 【Eclipse】将控制台输出直接保存到文本文件
- Git用户指南
- css3 :hover添加特效
- Queue队列 链式存储实现
- log4j
- Linux 网桥配置命令:brctl
- Android的原子操作函数
- spring+hibernate+struts2整合方案(2,整合细则)
- 第十二周项目1.1实现复数类中的运算符重载(成员函数)
- 删除指定节点
- 配置 linux 开机运行脚本 && setuid & setgid
- second test