队列线性表的c语言实现方式 seqqueue.h 和 seqqueue.c
2017-07-09 14:09
441 查看
seqqueue.h 文件
seqqueue.c 文件
上述可能会调用其它头文件或源文件,如果遇到,请翻看我的其它博客,对头文件或源文件的实现方式。
good luck !
#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 #endif Queue* 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 !
相关文章推荐
- 链表线性表的c语言实现方式 seqlist.h 和 seqlist.c
- c语言循环线性队列的实现
- 数据结构四:栈的两种形式LinkStack和SeqStack用线性表的实现方式,以及SeqQueue和LinkQueue的实现
- 队列---C语言实现---三种内存分配方式
- FIFO队列-C语言头文件方式实现
- 队列(Queue ADT)C语言实现
- 队列-C语言-链表的实现方式
- C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列
- 优先队列(priority_queue)的C语言实现代码
- Queue--队列(c语言简单实现)
- C语言实现队列Queue
- 栈线性表的实现方式 seqstack.h 和 seqstack.c
- c语言数组方式实现静态循环队列
- 数据结构与算法分析-用C语言实现队列(数组方式)
- 数据结构队列的java实现,包括线性和链式两种方式
- 线性表的顺序方式实现(c语言)
- C语言队列QUEUE简单实现
- 线性表——顺序结构(c语言实现)
- 小佳弱弱学习——queue队列的简单实现
- 用c语言实现面向对象的编程方式