arrayQueue
用数组实现队列:
定义头文件:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #define MAX_SIZE 10 4 int queue[MAX_SIZE]; 5 int front=-1; 6 int rear=-1; 7 8 int IsFull(int queue[]); //判断队列是否已满 9 int IsEmpty(int queue[]); //判断队列是否为空 10 void queueFull(); //队列满时抛出函数,并退出程序 11 void queueEmpty(); //队列为空时的函数 12 void addQ(int queue[],int element); //向队列中追加元素 13 int deleteQ(int queue[]); //取出队首元素
各函数的具体实现:
1 int IsFull(int queue[]){ 2 if(rear==MAX_SIZE-1) 3 return 1; 4 return 0; 5 } 6 int IsEmpty(int queue[]){ 7 if(front==rear) 8 return 1; 9 return 0; 10 } 11 void queueFull(){ 12 fprintf(stderr,"Queue is full!"); 13 exit(EXIT_FAILURE); 14 } 15 void queueEmpty(){ 16 fprintf(stderr,"Queue is empty!"); 17 exit(EXIT_FAILURE); 18 } 19 void addQ(int queue[],int element){ 20 if(IsFull(queue)) 21 queueFull(); 22 queue[++rear] = element; 23 } 24 int deleteQ(int queue[]){ 25 if(IsEmpty(queue)) 26 queueEmpty(); 27 return queue[++front] ; 28 }
用来测试的主函数(在devcpp中编译通过):
1 int main(void) 2 { 3 int i=0; 4 for(i=0;i<MAX_SIZE;i++) { 5 addQ(queue,i+1); 6 } 7 for(i=0;i<MAX_SIZE;i++){ 8 printf("%d ",deleteQ(queue)); 9 } 10 printf("%d\n",deleteQ(queue)); 11 }
在抽象数据类型中有创建一个队列的函数,却不知道是怎么实现~~
2016-10-24 10:30:45
转载于:https://www.cnblogs.com/dtdyq/p/5992045.html
arrayQueue相关推荐
- Java数组队列ArrayQueue
作者: wangding263 链接:http://wangding263.javaeye.com/blog/255523 发表时间: 2008年10月20日 声明:本文系JavaEye网站发布的 ...
- ArrayQueue详解(待解决)
转载于:https://www.cnblogs.com/TTTTT/p/6567487.html
- android post请求添加公共参数_XHttp2 一个功能强悍的网络请求库
XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装.还不赶紧点击使用说明文档,体验一下吧! 项目地址 关于我 https://github ...
- 数据结构--数组队列的实现
数据结构--数组模拟队列 1. 说明 2. 实现代码 1. 数组队列类 2.数组队列测试类 3.代码运行结果 3.完整代码 1. 说明 队列是一个有序列表,可以用数组或者链表来实现. 遵循先入先出(F ...
- 『并发包入坑指北』之阻塞队列
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 题外话 前几天我在公众号后天收到一位读者的留言: 我相信也有其他朋 ...
- 你应该知道的高性能无锁队列Disruptor
1.何为队列 听到队列相信大家对其并不陌生,在我们现实生活中队列随处可见,去超市结账,你会看见大家都会一排排的站得好好的,等待结账,为什么要站得一排排的,你想象一下大家都没有素质,一窝蜂的上去结账,不 ...
- linux中O(1)调度算法与全然公平(CFS)调度算法
一.O(1)调度算法 1.1:优先级数组 O(1)算法的:一个核心数据结构即为prio_array结构体. 该结构体中有一个用来表示进程动态优先级的数组queue,它包括了每一种优先级进程所形成的链表 ...
- android 打包 混淆配置_android 实际项目中混淆文件的配置(参考做法)
之前对项目混淆一直了解不是很透,趁着打包正式项目的时候有特意的去了解了一番,做些记录,备忘! -optimizationpasses 5 -dontusemixedcaseclassnames -do ...
- 数据结构与算法---队列
数据结构与算法-队列 1. 队列的定义: 队列(Queue )简称队,是一种操作受限制 的线性表 ,只允许在表的一端进行插入,而在表的另一端进行删除.向队列中插入元素称为入队或进队: 删除元素称为出队 ...
最新文章
- 学术分享丨面向机器人的学习算法简述
- vba vbscript.regexp加载dll错误_[原]排错实战——拯救加载调试符号失败的IDA
- 在Spring Boot中配置web app
- java中三种常见内存溢出错误的处理方法
- Android之FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
- 医学影像设备学_什么是医学影像专业?
- jQuery Mobile中网格grid样式ui-grid-*
- 【渝粤教育】电大中专电子商务网站建设与维护_1作业 题库
- 删除CentOS系统自带的jdk
- 【数学和算法】矩阵运算的相关公式
- 什么是OFD格式文档?一文教你读懂OFD格式文档
- 饿了么自动登录解决方案(手机短信登录)
- 求解一元二次方程c语言程序,一元二次方程求解程序完整代码
- 投稿英文国际会议论文经验总结
- sound函数及大调音阶播放
- Java计算机毕业设计图书馆座位预约管理系统源码+系统+数据库+lw文档
- 【转载】什么样的妻子什么样的人生
- DRM框架(vkms)分析(4)----encoder初始化
- ffmpeg vsync参数分析
- C语言实现,输入某年某月某日,判断这一天是这一年的第几天?
热门文章
- arraylist获取前多少位_Java 面试题 :百度前 200 页都在这里
- Requests库实战(三)---爬取豆瓣电影详细信息
- Requests库实战(一)---网页采集器
- C++函数后置返回类型
- 以外的文件 删除_原来C盘还可以删除这五个文件,难怪电脑越来越卡!
- python源码笔记_python源码学习笔记(二)
- python就业班 miniweb框架_mini-web框架
- 万维网发布服务 w3svc 已停止 除非万维_万维网和互联网的区别
- 武汉城市职业学院计算机分数线,武汉城市职业学院历年分数线 2021武汉城市职业学院录取分数线...
- android官方文档中文版_Now in Android:01 - 如何掌握最新的 Android 技术?