堆栈与队列算法-以链表来实现队列

news2024/11/23 9:42:58

目录

堆栈与队列算法-以链表来实现队列

C++代码


堆栈与队列算法-以链表来实现队列

队列除了能以数组的方式来实现外,也可以用链表来实现。在声明队列的类中,除了和队列相关的方法外,还必须有指向队列前端和队列末尾的指针,即front和rear。

C++代码

#include<iostream>
using namespace std;

class Node {
public:
	int data;
	Node* next;
};

class Queue {
private:
	Node* front;
	Node* rear;

public:
	Queue() {
		front = nullptr;
		rear = nullptr;
	}
	void Push(int num) {
		Node* newNode = new Node;
		newNode->data = num;
		newNode->next = nullptr;
		if (rear == nullptr)
			front = newNode;
		else
			rear->next = newNode;
		rear = newNode;
	}
	void Pop() {
		if (!(front == nullptr)) {
			if (front == rear)
				rear = nullptr;
			front = front->next;
		}
	}
	void Print() {
		while (true) {
			if (!(front == nullptr)) {
				cout << front->data << " ";
				Pop();
			}
			else
				break;
		}
	}
};

int main() {
	Queue* queue = new Queue();
	char ch = ' ';
	while (ch != 'E') {
		cout << "输入I:往队列加入一个数据;输入G:从队列中取出一个数据;输入E:结束程序" << endl;
		cout << "请输入:";
		cin >> ch;
		switch (ch)
		{
		case 'I':
			cout << "请输入数据:";
			int val;
			cin >> val;
			queue->Push(val);
			break;
		case 'G':
			queue->Pop();
			break;
		default:
			break;
		}
	}
	cout << "队列中的数据:";
	queue->Print();
	return 0;
}

结果输出

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

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

相关文章

Mac用户心目中的四款首选原型工具

Wireframe、Mockup和prototype在原型工具中有什么区别&#xff1f; 无论你是刚进入这个行业的UX/UI设计师&#xff0c;还是已经进入这个行业多年的老手&#xff0c;你都必须在制作原型的过程中接触或听到三个非常重要的原型术语&#xff1a;“wireframe(线框图)Mockup”或“pr…

概念解析 | 雷达动态范围

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:雷达动态范围。 揭开雷达动态范围的神秘面纱 雷达动态范围是描述雷达系统性能的一个重要指标,它直接影响着雷达的检测能力。但是这个指标又比较抽象,对于非专业人员来说不太容易…

arcpy.AddIDMessage

描述 使用 AddIDMessage 函数编写任何标准错误或警告消息。 示例 代码 def _raise_conda_import_error():#使用 AddIDMessage 函数编写任何标准错误或警告消息。arcpy.AddIDMessage("ERROR", 260005)exit(260005) #检测导入的包是否存在错误&#xff0c;如果导入…

防抖节流适用于input输入查询

文章目录 1 当监听input 输入变化做接口查询时&#xff0c;会出现疯狂的请求接口。这里用计时器做时间段查询。当用户输入完成1s后再走查询 4次输入1&#xff0c;不做节流会打印&#xff1a;1 11 111 1111 1 当监听input 输入变化做接口查询时&#xff0c;会出现疯狂的请求接口…

勇立潮头丨家装设计师首选品牌意大利OXO专注品质 为消费者带来个性化整卫方案

近几年&#xff0c;“整装”赛道大热&#xff0c;“整家”、“整装”、“大家居”在行业内引发诸多热烈讨论。在卫浴行业&#xff0c;卫浴头部定制企业率先开启了一波套餐式营销战。 在传统的卫浴销售模式下对尺寸大小的匹配已经无法满足当今家居消费主力的需求&#xff0c;单…

技术学习群-第五期内容共享

本期是技术学习群第五期知识共享。对外免费开放。私聊即可。欢迎各位加入。 一起看看本期分享了些啥知识。 关于Python第三方装包-pandas 群友有提问&#xff1a; 这个问题还是比较明显的&#xff0c;直接将 Microsoft Visual C 14.0 下载安装即可。随后她又遇到了一个问题&…

葵花药业-002737 三季报分析(20231030)

葵花药业-002737 基本面分析 基本情况 公司名称&#xff1a;葵花药业集团股份有限公司 A股简称&#xff1a;葵花药业 成立日期&#xff1a;2005-09-07 上市日期&#xff1a;2014-12-30 所属行业&#xff1a;医药制造业 周期性&#xff1a;0 主营业务&#xff1a;各类中成药、化…

使用Jetpack Compose从图库中选择图片

使用Jetpack Compose从图库中选择图片 添加依赖 Jetpack Compose是一种用于构建Android应用界面的现代工具包。它提供了一种声明性的方式来创建用户界面&#xff0c;使开发者能够更轻松地构建交互式和可定制化的应用程序。本文将介绍如何使用Jetpack Compose从图库中选择图片…

静态NAT之(Nat server )

-静态NAT&#xff0c;指的是对外网所有类型的类型&#xff0c;都允许进入到内网特定的设备上&#xff08;不安全&#xff09; -静态PAT&#xff0c;指的是在对外网进入到内网的时候&#xff0c;仅仅针对特定类型协议的流量做转换 那么这种静态 PAT &#xff0c;通常都是应用于…

【CSS】position

CSS position 1.静态布局 static static 是 position 属性的默认值&#xff0c;表示没有定位。使用静态定位的元素会按照元素正常的位置显示&#xff0c;并且不会受到 top、bottom、left、right 和 z-index 属性的影响。 2.相对定位 relative 相对定位就是元素相对于自己默…

剑指offer --- 字符串中替换空格

目录 前言 一、读懂题目 二、思路分析 三、代码呈现 总结 前言 作为引入讲讲这道题的由来&#xff0c;在网络编程中&#xff0c;如果 URL 参数中含有特殊字符&#xff0c;如空格、#等&#xff0c;可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务…

设计模式04———桥接模式 c#

桥接模式&#xff1a;将一个事物从多个维度抽象出来&#xff0c;采用 分离 和 组合 的方式 替代 原本类的继承 桥接模式&#xff08;Bridge Pattern&#xff09;是一种软件设计模式&#xff0c;属于结构型模式&#xff0c;它用于将抽象部分与具体实现部分分离&#xff0c;以便它…

SpringCloud(三) Ribbon负载均衡

SpringCloud(二) Eureka注册中心的使用-CSDN博客 在SpringCloud(二)中学习了如何通过Eureka实现服务的注册和发送,从而通过RestTemplate实现不同微服务之间的调用,加上LoadBalance注解之后实现负载均衡,那负载均衡的原理是什么呢? 目录 一, 负载均衡 1.1 负载均衡原理 1.2 源…

怎么用python代码查看可用的gpu,然后指定可用的gpu运行

查看gpu import torch# 检查CUDA是否可用 if torch.cuda.is_available():# 获取GPU设备数量device_count torch.cuda.device_count()# 列出可用的GPU设备for i in range(device_count):print(f"GPU {i}: {torch.cuda.get_device_name(i)}") else:print("CUDA …

JZ22链表中倒数最后k个节点

JZ22链表中倒数最后k个节点 解法一 双指针法&#xff0c;定义两个快慢指针&#xff0c;先让快指针走k步&#xff0c;然后让两个指针以相同速度向前&#xff0c;直到快指针走到尾部none的位置&#xff0c;此时慢指针正好在倒数第k的位置此方法的时间复杂度为O&#xff08;n&…

Ubuntu Desktop 20.04升级gcc-11

默认自带的gcc是9&#xff0c;需要升级到11 sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update sudo apt install gcc-11 sudo apt install g11 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50 sudo update-alternatives -…

数字孪生三剑客!云渲染及虚拟仿真服务器产品MapGIS Server for Unreal来了

10月18日&#xff0c;新一代全空间智能GIS平台的升级之作——MapGIS 10.6 Pro在深圳正式发布&#xff0c;整场发布会全空间GIS、智能GIS、信创GIS、全栈开发各维度创新一一揭晓&#xff0c;全空间一体化、深度融合云端的全系产品全面升级&#xff0c;科技盛宴、高潮迭起。其中尤…

海外跨境电商云厂商阿里云、华为云、九河云选择攻略

近几年出海已成为趋势&#xff0c;而要打有准备的仗&#xff0c;就必须先收集关键信息。国内企业出海需要对海外市场进行深入的分析和挖掘&#xff0c;数据分析技术可以帮助国内企业更好地了解海外市场的需求和趋势&#xff0c;包括市场调研、用户画像、销售数据分析等方面&…

UnrealSynth虚幻合成数据生成器

UnrealSynth 虚幻合成数据生成器利用虚幻引擎的实时渲染能力搭建逼真的三维场景&#xff0c;为 YOLO 等 AI 模型的训练提供自动生成的图像和标注数据。UnrealSynth 生成的合成数据可用于深度学习模型的训练和验证&#xff0c;可以极大地提高各种行业细分场景中目标识别任务的实…

RCD负载箱的价格和性价比如何?

RCD负载箱用于测试电力设备的专用设备&#xff0c;主要用于检测电路的电流、电压和功率等参数。 RCD负载箱的价格与其品牌、型号、功能和性能有关&#xff0c;知名品牌和高性能的RCD负载箱价格会相对较高&#xff0c;而一些普通品牌或功能较简单的RCD负载箱价格则相对较低&…