用最简单的数组去实现队列
2016-12-20 23:15
246 查看
用数组去实现队列
在上一节中我们是用数组去实现了客栈的功能,那么我们在这节中学习如何用数组去实现队列的功能队列是一种先进先出的数据结构(fisrt-in-first-out) 队列之允许在后端进行插入操作,在前端进行删除操作。 利用数组按下表进行顺序存储,删除,插入元素的特点,可在数组的末尾插入元素,在数组的首部删除元素,这样可以实现用数组实现队列的功能
头文件定义的代码: #ifndef __QUEUE_H_ #define __QUEUE_H_ #define MAX_NUM 100 int is_empty(); int is_full(); int pop_queue(); void push_queue(int element); int getQueueEnd(); int getQueueTop(); #endif
queue.c文件的实现: #include"queue.h" int queueElements [MAX_NUM]; unsigned int position = 0; static void removeQueueTop(int index); int is_empty(){ return position == 0; } int is_full(){ return position >= MAX_NUM; } int pop_queue(){ if(is_empty()){ return 0; } int element = queueElements[0]; removeQueueTop(0); position--; return element; } static void removeQueueTop(int index){ int i; for(i= index; i< position-1 ; i++){ queueElements[i] = queueElements[i+1]; } } void push_queue(int element){ if(is_full()){ return;
测试部分的代码: include<stdio.h> #include"queue.h" int main(int argc,char* argv []){ push_queue(2); push_queue(15); push_queue(17); push_queue(8); printf("%d\n",pop_queue()); printf("%d\n",pop_queue()); push_queue(100); printf("%d\n",pop_queue()); return 0; }
最后的结果为:
2
15
17
注:小弟是一个C的初学者,如果有什么不对,或者需要指正的地方,请及时指正,以上两篇只是用最基础的C的数组来实现栈和队列,在后续会用指针的用法对其进行更深层次的优化。
相关文章推荐
- 简单队列和循环队列的实现--数组实现
- 使用数组实现的简单队列结构
- 数组实现的简单循环队列
- 简单队列的实现(基于数组)
- [Algorithms]简单的栈与队列数组实现
- C语言使用数组实现简单队列
- wait, notify, notifyAll, 简单数组模拟队列实现读者写者问题。
- 队列--基于简单循环数组实现(Java)
- 数据结构学习之路(四)用数组简单实现循环队列
- 使用数组简单实现的阻塞队列
- 数组实现简单的队列
- c语言用简单数组实现循环队列
- 简单循环队列模版(数组实现)
- 简单的双线程数组循环队列缓冲区的实现
- 利用循环数组实现的队列
- 简单的实现队列,键值,数列功能类
- 小佳弱弱学习——queue队列的简单实现
- PHP 简单数组排序实现代码
- 静态数组实现队列(C语言)
- 循环队列的数组表示函数的实现