[数据结构] 用C语言模拟一个简单的队列程序
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include<math.h> //队列长度自定义
#define ASIZE 1001
#define MAX_INT 2147483647 typedef struct quque {
int data[ASIZE];
int front;
int rear;
}Queue; //空0,满-1,正常 1
int notEmpty(Queue *queue)
{
if ((*queue).front == (*queue).rear)
return ;
else if ( ((*queue).rear+)%ASIZE == (*queue).front )
return -;
else return ;
} //测量队列长度
int lengthOfQueue (Queue (*queue))
{
if ((*queue).rear >= (*queue).front)
return (*queue).rear-(*queue).front;
else return (*queue).rear + ASIZE - (*queue).front;
} //push
void pushToQueue(Queue (*queue), int one)
{
if (notEmpty(queue) == -)
{
printf("⚐队列已满,无法PUSH");
return;//队满
}
(*queue).data[(*queue).rear] = one;
(*queue).rear = ((*queue).rear +)%ASIZE;
} //pop,队空返回max_int
int popFromQueue(Queue (*queue))
{
if (!notEmpty(queue))
{
printf("⚐队列为空,无法POP");
return MAX_INT;
}
int pop = (*queue).data[(*queue).front];
(*queue).front = ((*queue).front + )%ASIZE;
return pop;
}
//仅读取队首,不出队
int readTopOfQueue(Queue (*queue))
{
if (notEmpty(queue))
return (*queue).data[(*queue).front];
else
{
printf("⚐队列为空,无法读取");
return -;
}
}
//创建队列
Queue* creatAQueue()
{
Queue *queue = (Queue *)malloc(sizeof(Queue));
(*queue).front = ;
(*queue).rear = ;
return queue;
} //打印队列
void printQueue(Queue (*queue))
{
if ((*queue).front == (*queue).rear)
{
printf("\n⚐队列为空\n");
return;
}
printf("\n队首的下标为 %d ,队尾的下标为 %d \n队列为:",(*queue).front,(*queue).rear);
for (int i = (*queue).front ; i != (*queue).rear ; i = (i+)%ASIZE )
{
printf (" %d ",(*queue).data[i]);
}
printf("\n");
} int main()
{
Queue *queue = creatAQueue();
int order;
int one;
while () {
printf("\n☀︎命令:1-进行入队操作,2-进行出队操作,3-打印队列\n✎请输入指令:");
scanf("%d",&order);
switch (order) {
case :
printf("\n✎请输入需要入队的数值:");
scanf("%d",&one);
if (notEmpty(queue) == -)
{
printf("\n⚐队列已满\n");
break;
}
pushToQueue(queue,one);
break;
case :
if (notEmpty(queue) == )
{
printf("\n⚐队列还是空的哟~\n");
break;
}
one = popFromQueue(queue);
printf("\n出队的数据为%d\n",one);
break;
case :
printQueue(queue);
break;
default:
printf("\n⚐指令有误\n");
break;
}
}
return ;
}
[数据结构] 用C语言模拟一个简单的队列程序的更多相关文章
- 用C语言编写一个简单的词法分析程序
问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...
- socket实例C语言:一个简单的聊天程序
我们老师让写一个简单的聊天软件,并且实现不同机子之间的通信,我用的是SOCKET编程.不废话多说了,先附上代码: 服务器端server.c #include <stdio.h> #incl ...
- java 使用LinkedList模拟一个堆栈或者队列数据结构
近期在复习下java基础,看了下java基础,在看到集合时突然发现想起来曾经面试有一道笔试题:模拟一个堆栈或者队列数据结构,当时还没做出来,今天就写一下,首先得明确堆栈和队列的数据结构 堆栈:先进后出 ...
- 使用LinkedList模拟一个堆栈或者队列数据结构
使用LinkedList模拟一个堆栈或者队列数据结构. 堆栈:先进后出 如同一个杯子. 队列:先进先出 如同一个水管. import java.util.LinkedList; public cl ...
- java集合 collection-list-LinkedList 模拟一个堆栈或者队列数据结构。
/* 使用LinkedList模拟一个堆栈或者队列数据结构. 堆栈:先进后出 如同一个杯子. 队列:先进先出 First in First out FIFO 如同一个水管. */ import jav ...
- Java LinkedList特有方法程序小解 && 使用LinkedList 模拟一个堆栈或者队列数据结构。
package Collection; import java.util.LinkedList; /* LinkedList:特有的方法 addFirst()/addLast(); getFirst( ...
- 面试题:使用LinkedList来模拟一个堆栈或者队列数据结构
请使用LinkedList来模拟一个堆栈或者队列数据结构. 堆栈:先进后出 First In Last Out (FILO) 队列:先进先出 First In First Out (FIFO) 我 ...
- 用Go语言实现一个简单的聊天机器人
一.介绍 目的:使用Go语言写一个简单的聊天机器人,复习整合Go语言的语法和基础知识. 软件环境:Go1.9,Goland 2018.1.5. 二.回顾 Go语言基本构成要素:标识符.关键字.字面量. ...
- 编写一个简单的C++程序
编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...
随机推荐
- 《Unbroken》
<Unbroken> 献给正在奋力向前的你 You can’t connect the dots looking forward, you can only connect them lo ...
- 076、创建Rex-Ray volume (2019-04-23 周二)
参考https://www.cnblogs.com/CloudMan6/p/7624556.html 前面我们安装部署了 Rex-Ray ,并且成功配置 Virtualbox backend ,今 ...
- Matplotlib画正弦余弦曲线
参考1:http://www.labri.fr/perso/nrougier/teaching/matplotlib/ 参考2:https://matplotlib.org/api/artist_ap ...
- JGUI源码:响应式布局简单实现(13)
首先自我检讨下,一直没有认真研究过响应式布局,有个大致概念响应式就是屏幕缩小了就自动换行或者隐藏显示,就先按自己的理解来闭门造车思考实现过程吧. 1.首先把显示区域分成12等分,bootstrap是这 ...
- Gephi——使用map of countries和Geo Layout实现包含地理坐标的数据可视化
前言: Gephi(以下内容基于0.9.2)比较擅长用来处理社会网络分析,其自身以及插件对地理数据的支持非常不足.主要有以下几点: 1.map of countries这个插件可以在gephi底图上以 ...
- IntelliJ IDEA中项目报错org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 8 或maven操作compile报resource使用utf8这样的编码错
问题:项目开发工具已经setting成utf-8 并且项目各方面的配置文件包括maven这些的pom.xml里的配置都已经设置为utf-8 但是还报错 IntelliJ IDEA中项目报错org.xm ...
- Collections -- OrderedDict类
普通dict(字典)在插入的时候并不记住元素的顺序,迭代器会根据散列表(哈希表)中存储的顺序来生成的.而OrderedDict则会记录元素的顺序,并且在迭代器输出时,会按现在记录的顺序进行遍历. 例: ...
- Centos环境下安装mongoDB
安装前注意: 此教程是通过yum安装的.仅限64位centos系统 安装步骤: 1.创建仓库文件: vi /etc/yum.repos.d/mongodb-org-3.4.repo 然后复制下面配置, ...
- 一、下载安装superset
1.环境介绍: 操作系统:Windows 10 python版本:3.73 2.创建虚拟环境: 打开命令行窗口,使用安装python自带的pip命令,下载pinenv 虚拟环境工具, pip inst ...
- vue路由--网站导航功能
1.首先需要按照Vue router支持 npm install vue-router然后需要在项目中引入: import Vue from 'vue' import VueRouter from ' ...