24.8.9数据结构|链栈和队列

news2024/9/20 1:12:37

链栈

1、理解

实际上是一个仅在表头进行操作的单链表,头指针指向栈顶结点头结点,以下恋栈均指带头结点的链栈.

2、 基本操作

1、定义结构:节点含有数据域和指针域

2、初始化操作:建立一个带头结点的空栈

3、取栈顶元素操作:取出栈的栈顶元素,将栈中第一个节点的值送到e所指向的内存单元,不删除栈顶结点

4、求栈长操作:从栈顶开始统计栈中元素个数直到栈底为止

5、入栈操作:将值为X的数据元素插入栈中使X成为新的栈顶元素

(先创建一个新结点,其数据域的值为X,然后将该结点插入到头节点之后作为栈顶结点)考虑空间申请是否成功

6、出栈操作:删除S的栈顶元素(先将栈S的栈顶结点的值送到一所指的内存单元然后删除栈顶结点)考虑栈空

7、算栈空操作:判断栈是否为空

8、输出栈:输出自栈顶到栈底的元素值

 3、代码

 4、课后练习

例题1

编写算法利用栈将带头结点的单链表逆置

例题2

设计一个算法判断一个字符串是否对称若是则返回一否则返回零

 队列

顺序队列

1、理解

特殊的线性表,只允许在一端插入另一端删除,队尾插入队头删除。对头指针和队尾指针并不一定是指针变量,也可以是下标变量。在用下标变量来描述队列时,在初始化空队列时,队头指针和队尾指针的值都为零。当当front==rear时,队列为空,当rear==Maxsize时,队列为满。

入队时尾指针rear加一,出队时头指针front加一

2、基本操作(顺序队列、循环队列)

1、顺序队列的类型定义:基地址、队头指针、队尾指针

2、初始化操作:构建一个空队列

3、求队列长度操作:返回队列的元素个数

4、取队头元素操作:通过一返回队列的队头元素值

5、入队操作:将值为X的元素插入到队列中使X成为新的队尾元素

6、出队操作:删除队列中的队头元素同时将队头元素值通过E代回,原队列中的第二个元素成为新的队头元素。

7、判断队空操作:判断队列queue是否为空若队列为空则返回一否则返回零

8、输出队列操作:从对头到队尾依次输出队列queue中的所有元素

队列也是一个线性表其存储结构也分为顺序存储和链式序存储两种分别称为顺序队列和链队列

循环队列

1、理解

为了解决入队列操作产生假溢出现象,可以把顺序队列从逻辑上看成是一个环,即当队列为指针或队头指针达到最大下标值Maxsize时,再从下标为零的位置开始举,这种队列称为循环队列。、

循环队列中队头指针和队尾指针的后移可以利用除最大下标值取余的运算来实现

队头指针后移操作:

front=(front+1)%MAXQSIZE;

队列长度的计算公式为:

( rear+Maxsize-front)%Maxsize

链式队列

 实际上是一个带头指针和尾指针的单链表。

1、结构定义

2、初始化操作

3、求队列长度操作

4、判断队列为空

5、取队头元素

6、入队列操作

7、出队操作

8、输出队列操作

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

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

相关文章

【最新】推荐6款论文ai写论文软件推荐网站平台

在当前的学术研究和写作环境中,AI写作工具已经成为许多学者和学生的重要助手。这些工具不仅能够提高写作效率,还能帮助优化文章结构、润色语言以及进行查重等任务。以下将推荐六款优秀的AI写论文软件,并详细介绍它们的功能和特点。 1. 千笔-…

Spring及相关框架的重要的问题

Java框架 问题一:Spring框架中的单例bean是线程安全的吗? 看下图,不能被修改的成员变量就是无状态的类,无状态的类没有线程安全问题,所以在开发中尽量避免可修改的成员变量。 回答:不是线程安全的&#xf…

Drizzle ORM使用Azure PostgreSQL数据库迁移失败

执行 npx drizzle-kit migrate 命令报错: No config path provided, using default drizzle.config.ts Reading config file E:\nextjs-cloudflare-drizzle\drizzle.config.ts Using postgres driver for database querying [⡿] applying migrations...PostgresEr…

Intersection Observer API 帮你搞定前端滚动问题

前言 当我们在做需求时,可能经常会遇到很多跟页面的滚动有关的需求。例如 图片的懒加载:我们希望只加载用户当前视图窗口的图片,而未进入到视图窗口的图片,只有在进入到视图窗口时才进行加载,以提高页面响应速度&…

简单报表示例

简单报表 概述 简单表格报表:简单的表格报表。 应用场景 如下图所示,简单展示数据 示例说明 数据准备 在数据面板中添加数据集,可选择Json数据集和API服务数据集。Json数据集输入如下图所示: [{"到货日期":&qu…

工业智能网关在制造业数字化转型中的应用分享-天拓四方

随着工业4.0和物联网技术的飞速发展,工业智能网关已成为连接现场设备、实现数据采集与远程监控的关键节点。本文将以一个实际使用案例为蓝本,深入探讨工业智能网关的应用价值、技术特点以及实施效果,旨在为读者呈现一个清晰、专业且实操性强的…

vue项目打包问题

缓存导致打包后js文件404 修改vue.config.js打包输出文件名为动态,例如取当前时间戳。 在index.html文件添加meta标签设置不缓存。 更新完包,假如用户此刻正访问某一个页面时,访问的包还是原来的情况导致出现bug 解决VUE项目更新后需要客户手…

渲染引擎实践 - UnrealEngine引擎的 GLContext 创建过程

一:概述: 本文分析下 UnrealEngine 启动过程中创建多少个 OpenGL Context,以及每个 Context 的作用。 基于 UnrealEngine 4.25 环境。 二:临时Context 1. PreInit -> PreInitPreStartupScreen -> PreloadResolutionSettings, 用于检查图形窗口分辨率 2. PreInit -&…

Nmap——网络扫描的强大利器

一、引言 在网络安全和管理的领域中,了解网络的拓扑结构、设备状态以及开放的服务端口等信息至关重要。Nmap(Network Mapper)作为一款功能强大的网络扫描工具,为我们提供了深入探索网络的能力。本文将详细介绍 Nmap 的特点、功能…

三款新手剪辑软件分享,告别复杂的达芬奇剪辑软件

你们知道吗?一个视频能不能火,除了内容要够硬核,剪辑也是门大学问呢!之前尝试过达芬奇剪辑,发现我不是很会用,然后最近我轮番上阵,试用了三款神器,来来来,让我给你们说说…

回归评价指标

这里写目录标题 1. 均方误差MSE2. 均方根误差RMSE3. 平均绝对误差MAE4. R^2^5. 调整后R^2^1. 均方误差MSE 回归数据和原始数据误差的平方和/原始数据个数平方的原因:不平方正负误差会抵消,对大误差更为敏感,在一些场景下更能凸显出模型预测的不准确性越接近于0,模型预测能力…

前端(三):Ajax

一、Ajax Asynchronous JavaScript And XML,简称Ajax,是异步的JavaScript和XML。 作用:数据交换,通过Ajax可以给服务器发送请求,并获取服务器响应的数据。异步交互:可以在不重新加载整个页面的情况下&…

雷达气象学(2)——雷达电磁波的衰减

文章目录 2.1 衰减的概念2.2 气体对电磁波的衰减2.3 云对电磁波的衰减2.4 雨对电磁波的衰减2.5 雪对电磁波的衰减2.5.1 干雪对电磁波的衰减2.5.2 湿雪对电磁波的衰减 2.6 冰雹对电磁波的衰减 2.1 衰减的概念 衰减是电磁波能量沿传播路径减弱的现象。造成衰减的原因是当电磁波投…

8.9套题

A. 猴猴吃苹果 题意:给定根节点k,求访问点的顺序,使得每次从上一个点到当前点的权值最大。访问过的点权值为0。权值一样时,输出最小编号 思路:由于是双向边,先求根节点到每一个节点的距离值。在第一轮中&…

WPF篇(3)- WrapPanel控件(瀑布流布局)+DockPanel控件(停靠布局)

WrapPanel控件(瀑布流布局) WrapPanel控件表示将其子控件从左到右的顺序排列,如果第一行显示不了,则自动换至第二行,继续显示剩余的子控件。我们来看看它的结构定义: public class WrapPanel : Panel {pub…

rocketMQ5.0事务消息实战

事务消息逻辑 首先我们来docker 部署rocketMQ与rocketMQDashBoard docker ps查看rocketMQ 容器名称 docker ps 进入容器内部 docker exec -it rmqnamesrv /bin/bash 创建事务消息 sh mqadmin updateTopic -c DefaultCluster -t TRANSACTIONTopic -n 127.0.0.1:9876 -a mes…

Python开源项目月排行 2024年7月

#2024年7月2024年8月2日1the-art-of-command-line一个全面而简洁的命令行使用指南。它旨在帮助工程师提高在命令行环境下的熟练程度和生产力。项目涵盖了从基础到高级的各种命令行技巧和知识,项目的内容涵盖了基础知识、日常使用、文件处理、系统调试等多个方面&…

图像自动化保存工具:Python脚本开发指南

引言 在数字化时代,图像已成为信息传递的重要媒介。无论是社交媒体、新闻网站还是电子商务平台,图像的自动化处理和保存都是提升用户体验和工作效率的关键。本文将深入探讨如何使用Python脚本实现从百度图片等搜索引擎批量下载并保存图像文件的高级应用…

第36集《大佛顶首楞严经》

请大家打开讲义第八十页,子三,明鼻识界即藏性。 蕅益大师讲到,我们修学大乘佛法,有一句话是很重要的。他说:“未开圆解,不应辄论修证。”说一个菩萨你没有真正地大彻大悟开圆顿解,你没有资格谈…

K8s问题案例分析

1.worker节点宕机,请说明一下pod的驱逐流程: k8s有一个节点控制器,节点控制器在一段时间内无法和kubelet通信,那么就会给节点打上unknown 状态,并自动创建NoExecute污点,避免调度器调度新的pod到该节点。同时已经在这…