队列线性表的c语言实现方式 seqqueue.h 和 seqqueue.c
来源:互联网 发布:linux jdk6安装教程 编辑:程序博客网 时间:2024/06/07 23:41
seqqueue.h 文件
#ifndef _SEQ_QUEUE_H_#define _SEQ_QUEUE_H_#include <stdio.h>#include <stdlib.h>#include <string.h>typedef void Queue;#ifndef bool#define bool int#define true 1#define false 0#endifQueue* SeqQueue_Create(int capacity);bool SeqQueue_Destory(Queue* queue);bool SeqQueue_Clear(Queue* queue);//线性队列中添加元素bool SeqQueue_Append(Queue* queue, void* item);//队列中出元素void* SeqQueue_Retrieve(Queue* queue);//队列头元素void* SeqQueue_Header(Queue* queue);int SeqQueue_GetLength(Queue* queue);int SeqQueue_GetCapacity(Queue* queue);#endif
seqqueue.c 文件
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "seqlist.h"#include "seqqueue.h"//队列的线性存储//创建线性队列相当于创建线性表Queue* SeqQueue_Create(int capacity){ return SeqList_Create(capacity);}//销毁线性队列相当于销毁线性表bool SeqQueue_Destory(Queue* queue){ return SeqList_Destroy(queue);}//清空线性队列相当于清空线性表bool SeqQueue_Clear(Queue* queue){ return SeqList_Clear(queue);}//向队列中插入一个元素相当于在线性表尾部插入或者头部插入,取其一//假定尾查法bool SeqQueue_Append(Queue* queue, void* item){ return SeqList_InsertOneNode(queue,item,SeqList_GetLength(queue));}//队列中出元素相当于从线性表中删除0号位置元素void* SeqQueue_Retrieve(Queue* queue){ return SeqList_DeleteOneNode(queue,0);}//获取队列的头部相当于获取线性表的0号位置void* SeqQueue_Header(Queue* queue){ return SeqList_GetOneNode(queue,0);}//获取线性队列的长度相当于获取线性表的长度int SeqQueue_GetLength(Queue* queue){ return SeqList_GetLength(queue);}//获取线性队列的容量相当于获取线性表的容量int SeqQueue_GetCapacity(Queue* queue){ return SeqList_GetCapacity(queue);}/**********************测试代码************************//*void main(){ int i = 0; int aa[10] = {0}; Queue* queue = NULL; queue = SeqQueue_Create(10); if (queue == NULL) { printf("创建线性队列失败"); } for (i = 0; i < 5; i ++) { aa[i] = aa[i] + i + 1; SeqQueue_Append(queue,&aa[i]); } printf("线性队列的容量是:%d \n",SeqQueue_GetCapacity(queue)); printf("线性队列的长度是:%d \n",SeqQueue_GetLength(queue)); printf("线性队列的头元素是:%d \n",*((int*)SeqQueue_Header(queue))); //出队列 while(SeqQueue_GetLength(queue) > 0) { printf("线性队列依次出元素:%d \n",*((int*)SeqQueue_Retrieve(queue))); } //销毁队列 SeqQueue_Destory(queue); system("pause");}*/
上述可能会调用其它头文件或源文件,如果遇到,请翻看我的其它博客,对头文件或源文件的实现方式。
good luck !
阅读全文
1 0
- 队列线性表的c语言实现方式 seqqueue.h 和 seqqueue.c
- SeqQueue
- 数据结构四:栈的两种形式LinkStack和SeqStack用线性表的实现方式,以及SeqQueue和LinkQueue的实现
- SeqQueue--顺序循环队列
- 链表线性表的c语言实现方式 seqlist.h 和 seqlist.c
- 数据结构封装之《SeqQueue顺序式队列》
- 数据结构封装之《SeqQueue顺序式队列》
- c语言循环线性队列的实现
- 队列链性表c语言实现方式 linkqueue.h 和 linkqueue.c
- 栈线性表的实现方式 seqstack.h 和 seqstack.c
- 链表的链性表的c语言实现方式 linklist.h 和 linklist.c
- 线性表的顺序方式实现(c语言)
- 队列-C语言-链表的实现方式
- 栈的链性表的c语言实现方式 linkstack.h 和 linkstack.c
- 线性表的顺序表示和实现(C语言描述)
- c语言线性表的链式表示和实现
- C语言实现线性表的插入和删除操作
- c语言线性表的链式表示和实现
- 20170709_简述ARP的工作原理
- hybrid- Cordova环境安装配置
- 越南文显示规范
- oi模板库
- Bootstrap学习(第二节)
- 队列线性表的c语言实现方式 seqqueue.h 和 seqqueue.c
- 结构体小结
- 《剑指offer》包含min函数的栈
- wsdl详解
- OpenBSD Will Get Unique Kernels on Each Reboot. Do You Hear That Linux, Windows?
- POJ 1088 滑雪
- maven教程
- SCCB
- 原生js实现类似jq的trigger