顺序队列和链式队列的基本操作

news2025/1/11 7:53:51

顺序队列

函数说明😃:

InitStack( &s):初始化栈
StackEmpty(s):判断一个栈是否为空
Push(& s, x):进栈
Pop(&s, &x):出栈
GetTop(s,&x):读栈顶元素
show(s):读出目前栈中的元素

代码😃:

constexpr auto maxsize = 10;
#include<stdio.h>
typedef struct {
	int data[maxsize];
	int front, rear;
}SqQueue;
void initQueue(SqQueue& Q) {
	Q.front = Q.rear = 0;
	printf("初始化成功\n");
}
bool isEmpty(SqQueue Q) {
	if (Q.front == Q.rear)return true;
	else return false;
}
bool EnQueue(SqQueue &Q,int x) {
	if ((Q.rear + 1) % maxsize == Q.front)return false;
	Q.data[Q.rear] = x;
	Q.rear = (Q.rear + 1) % maxsize;
	return true;
}
bool DeQueue(SqQueue & Q) {

	if (Q.rear == Q.front)return false;
	Q.front = (Q.front + 1) % maxsize;
	return true;

}
int QueueLength(SqQueue Q) {
	if (Q.rear == Q.front)return 0;
	int length;
	length = (Q.rear - Q.front + maxsize) % maxsize;
	return length;
}
void Queueshow(SqQueue Q){
	printf("目前队中的元素为");
	int i = Q.front, h = Q.rear;
	for (i; i != h; i = (i + 1) % maxsize) {
		printf("%d\t", Q.data[i]);
	}
	printf("\n");
}
bool QueueGetHead(SqQueue Q,int &x) {
	if (Q.rear == Q.front)return false;
	x = Q.data[Q.front];
	return true;

}
int main() {
	SqQueue Q;
	int i,e;
	while (true)
	{
		printf("*****************************************\n");
		printf("请输入您要进行的操作:\n");
		printf("1.初始化队  2.入队\n");
		printf("3.判断队空  4.出队\n");
		printf("5.求队的长度  6.目前队中的元素  7.读队头元素\n");
		printf("*****************************************\n");
		scanf_s("%d", &i);
		switch (i)
		{
		case 1:initQueue(Q);
			break;
		case 2:printf("请输入你要输入的元素");
			scanf_s("%d", &e);
			EnQueue(Q, e);
			break;
		case 3:if (isEmpty(Q)) {
			printf("队列为空\n");
		}
			  else
		{
			printf("队列不为空\n");
		}
			  break;
		case 4:DeQueue(Q); break;
		case 5: e = QueueLength(Q);
			printf("队的长度为%d\n", e);
			break;
		case 6:Queueshow(Q);
			break;
		case 7:QueueGetHead(Q, e);
			printf("队头元素为%d\n",e);
			break;
		default:
			break;
		}
	}
	return 0;
}

效果展示😃:
在这里插入图片描述

**********************************************************************************************

链式队列

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1994630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3项目框架搭建

前言 大多时候是在别人搭建好的项目上开发需求&#xff0c;突然要自己从新项目搭建开始&#xff0c;纯纯赶鸭子上架&#xff0c;参考一些项目&#xff0c;试着搭建的&#xff0c;记录一下历程&#xff0c;主要怕忘了。有些地方本该贴上代码截图更好&#xff0c;但是我此刻手头…

Vue引入使用iconfont字体图标

由于element-ui或element-plus提供的图标有时候并不能满足日常需求,所以这篇介绍一下前端引入阿里巴巴矢量图标库使用,不止是vue使用,不限于vue2、vue3,html或是其他框架也是同样的道理,只要引入都是同样可以使用的。 1. 首先进入阿里巴巴矢量图标库官网 官网:https://…

弱智吧:大模型变聪明,有我一份贡献【大模型VS弱智吧,谁聪明?谁弱智?】

「被门夹过的核桃&#xff0c;还能补脑吗&#xff1f;」 在中文网络上流传着这样一段话&#xff1a;弱智吧里没有弱智。 百度「弱智吧」是个神奇的地方&#xff0c;在这里人人都说自己是弱智&#xff0c;但大多聪明得有点过了头。最近几年&#xff0c;弱智吧的年度总结文章都可…

算法——决策树

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正。 一、什么是决策树&#xff1f; 决策树&#xff08;decision tree&#xff09;&#xff1a;决策树是一种树形结构的监督学习算法&#xff0c;广泛应用于分类任务和回归任务中。它通过递归地将数据…

豆瓣的ip地址怎样修改:探索显示机制与实用操作

在数字化时代&#xff0c;网络空间成为了我们日常生活不可或缺的一部分。豆瓣&#xff0c;作为一个集书籍、电影、音乐评论及社交功能于一体的综合性平台&#xff0c;其用户遍布全球。然而&#xff0c;有时我们可能因为隐私保护、网络限制或特定需求而希望修改在豆瓣上显示的IP…

【STM32 FreeRTOS】任务

使用 RTOS 的实时应用程序可以被构建为一组独立的任务。每个任务在自己的上下文中执行&#xff0c;不依赖于系统内的其他任务或 RTOS 调度器本身。在任何时间点&#xff0c;应用程序中只能执行一个任务&#xff0c;实时 RTOS 调度器负责决定所要执行的任务。因此&#xff0c; R…

Figure 02 机器人发布:未来AI的巅峰还是泡沫中的救命稻草?

引言 近日&#xff0c;Figure AI 公司发布了其最新的机器人产品 Figure 02&#xff0c;引发了广泛关注。作为 Figure AI 的第二代人形机器人&#xff0c;Figure 02 的推出引发了关于它是否是“地表最强”机器人的讨论。同时&#xff0c;由于 OpenAI 的技术支持&#xff0c;这款…

Java Web —— 第三天(Ajax+组件)

Ajax 概念: Asynchronous JavaScript And XML&#xff0c;异步的JavaScript和XML。 作用: 数据交换:通过Aiax可以给服务器发送请求&#xff0c;并获服务器响应的数据 异步交互:可以在不重新加载整个页面的情况下&#xff0c;服务器交换数据并更新部分网页的技术&#xff0c…

Java开发笔记--通用基础数据校验的设计

最近在开发一个功能&#xff0c;对排水管网的基础数据(包括管井、管道、泵站&#xff0c;雨水口&#xff0c;雨水口线&#xff0c;泵站&#xff0c;污水处理厂&#xff0c;排口等)的导入进行校验。 以字段为纬度&#xff0c;考虑二个方面的校验&#xff1a;数据库唯一&#xf…

RHCA III之路---EX436-9

RHCA III之路---EX436-9 1. 题目2. 解题2.1 安装apache2.2 配置页面2.3 配置selinux和防火墙2.4 创建资源 3. 确认 1. 题目 2. 解题 考试时会给你个url,从url下载index.html并放入默认目录 2.1 安装apache 3个节点分别安装 yum install -y httpd2.2 配置页面 nodea上执行 …

VIVADO IP核之DDS直接数字频率合成器使用详解

VIVADO IP核之DDS直接数字频率合成器使用详解 目录 前言 一、DDS基本知识 二、DDS IP核使用之SIN COS LUT only 三、DDS IP核之SIN COS LUT only仿真 四、DDS IP核使用之Phase Generator and SIN COS LUT 五、DDS IP核之Phase Generator and SIN COS LUT仿真 总结 前言 …

js 深入理解原型(prototype)及如何创建对象

目录 1. 概述2. 工厂模式3. 构造函数模式3.1 创建的格式3.2 JS内部执行步骤3.3 constructor 构造器3.4 构造函数也是函数3.5 构造函数的问题 4. 原型模式 prototype4.1 理解原型本质4.2 原型层级(访问一个属性&#xff0c;查询的次序&#xff09;4.2.1 查询次序&#xff1a;实例…

电动工具研讨会展商阵容揭晓,您的元器件选型指南!

导语 面对日益激烈的市场竞争&#xff0c;如何让您的电动工具脱颖而出&#xff1f;PI、MPS等多家知名元器件厂商将带来最新产品&#xff0c;覆盖MCU、电源管理芯片、功率器件等多个领域&#xff0c;助您一站式选型&#xff01; 在智能制造浪潮的推动下&#xff0c;电动工具正快…

谷粒商城实战笔记-145-性能压测-性能监控-jvisualvm使用-解决插件不能安装

文章目录 jvisualvm的作用安装查看gc相关信息的插件解决jvisualvm不能正常安装插件的问题1&#xff0c;查看java版本2&#xff0c;打开网址3&#xff0c;修改jvisualvm的设置 jvisualvm的作用 JVisualVM是一个集成在Java Development Kit (JDK) 中的多功能工具&#xff0c;它提…

使用易语言写一个翻译小助手

下载地址: https://pan.quark.cn/s/fa0935d10b10

springboot流浪猫狗领养管理系统-计算机毕业设计源码51529

目 录 摘要 1 绪论 1.1 研究背景及意义 1.2 开发现状 1.3论文结构与章节安排 2 流浪猫狗领养管理系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例…

Java社会校招类型人力资源招聘系统小程序源码

解锁社会校招新篇章&#xff1a;探索高效人力资源招聘系统 引言&#xff1a;为何社会校招需要升级&#xff1f; 在这个日新月异的时代&#xff0c;企业之间的竞争愈发激烈&#xff0c;而人才作为核心竞争力&#xff0c;其获取与培养成为了每个企业不可忽视的战略要点。尤其是…

桥韵国风:传统美学桥梁可视化

融合国风元素&#xff0c;采用图扑可视化技术&#xff0c;将桥梁结构与美学设计生动展示&#xff0c;传递传统文化的独特韵味&#xff0c;提升观赏与研究价值。

MySQL排序,相同分数的,排序相同

一、数据准备 CREATE TABLE staff_product (staffId bigint NOT NULL COMMENT 员工id,staffName varchar(255) DEFAULT NULL COMMENT 员工姓名,product_count int DEFAULT NULL COMMENT 生产的产品数,PRIMARY KEY (staffId) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT员工…

『大模型笔记』人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)

人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF) 文章目录 一. 人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)1. 概念解释2. RLHF的组成部分2.1. 强化学习(Reinforcement Learning, RL)2.2. 状态空间(state space)2.3. 动作空…