[数据结构] 用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函数,它什么也不干, ...
随机推荐
- 前端自动提示功能插件-typeahead
typeahead https://npm.taobao.org/package/npm-typeahead A lightweight web-app that implements typeahe ...
- iview-admin安装
桌面创建project文件夹. 文件夹内右键选择gitbash here,输入git init.文件夹内会生成.git文件夹. 再输入git config --global user.name &qu ...
- ccf 201503-5 最小花费 这题交上去只有10分嗨!求大佬的题解啊
问题描述 C国共有n个城市.有n-1条双向道路,每条道路连接两个城市,任意两个城市之间能互相到达.小R来到C国旅行,他共规划了m条旅行的路线,第i条旅行路线的起点是si,终点是ti.在旅行过程中,小R ...
- vue内置的标签(组件)
component:用于动态组件,查看博文vue学习之组件. <component :is="componentId"></component> trans ...
- java abs(绝对值) , max(最大值),min(最小值) 方法的应用
在写程序是,我们常常会计算一个数的绝对值,这时我们可以使用java里的方法来计算 public class Demo1{ public static void main(String [] args) ...
- 强行杀windows服务
powershell命令:taskkill /f /fi "SERVICES eq 服务名称"
- hikey960编译记录
arm64内核编译命令: 1 make ARCH=arm64 hikey960-defconfig 2 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- ...
- 奇yin技巧
关于一些奇yin技巧 关于删除字符串中的一些字串,并且考虑新的字串 例题:luogu4824 luogu3121 方法:开一个栈记录,发现字串后剪去字串长度. for(int i=1;i<=le ...
- python基础--numpy.dot
# *_*coding:utf-8 *_* # athor:auto import numpy dot = numpy.dot([0.100, 0.200],2.) print(dot) #[ 0.2 ...
- tp5.1入口文件隐藏
修改.htaccess文件 <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On Re ...