软考19-上午题-栈和队列

news2024/9/22 17:36:38

栈、队列,都是线性结构

 

一、栈

1-1、栈的定义

只能通过访问他的一端来实现数据的存储和检索的线性结构。

特点:先进后出

不含数据元素的栈——空栈。

栈的典型应用,递归

1-2、栈的存储结构

1-2-1、栈的顺序存储——顺序栈

可以用数组实现。

(用地址连续的存储单元存放栈中的元素)

int[] arr = new int[10];

要预先定义栈的存储空间,即,栈空间的容量是有限的,所以,入栈的时候,要判断是否栈满。

1-2-2、栈的链式存储——链栈

头指针 = 栈顶指针 

StackNode{
    int data;
    StackNode next;
}
链栈的基本操作:

①初始化

top = null;

②判空

if(top == null){
    return true;
}else{
    return false;
}

③入栈

node.next = top;
top = node;

④出栈

if(isEmpty()){
    return false;
}
top = top.next;

⑤读栈顶元素

if(isEmpty()){
    return false;
}
return top;

 

1-3、栈的真题

真题1:

真题2:

 

真题3:

 

真题4:

真题5:

 

真题6:

 

真题7:

 

真题8:

 

 

二、队列

2-1、队列的定义

允许在表的一端插入元素,表的另一端删除元素的线性表

特点:先进先出

 

 

2-2、队列的存储结构

2-2-1、队列的顺序存储——顺序队列

数组实现。

用地址连续的存储单元存放栈中的元素。

1、顺序队列的基本操作:

①初始化

 

注意:

        此时,队头、队尾指针,指向相同的位置!!!

②判空

if(front == rear){
    return true;
}else{
    return false;
}

③入队

q[rear] = x;
rear++;

注意:

        入队的时候,队尾指针要向后移,指向下一个元素的位置;队头指针不动。

④出队

// 判空
if(isEmpty()){
    return false;
}
front++;

注意:

        出队的时候,队头指针向后移。 

⑤读队头元素

if(isEmpty()){
    return false;
}
return q[front];

 

2、循环队列

此方式,队列存在一个问题,看似满了,实则没有满。

解决方式:循环队列。

此时,判空有问题:

2-2-2、队列的链式存储——链队列

为了便于操作,给链队列添加一个头节点

判空:头指针 = 尾指针,且均指向头结点。 

 

 1、链队列的基本操作

④出队

 

特殊情况,当链队列中只有一个节点的时候,删除队尾节点,tail队尾指针需要重新定位到队头指针的位置。

 

 

注意:

        链队列的入队、出队,不用遍历整个链表。

2-2-3、双端队列

 

2-3、队列的真题

 真题1:

 真题2:D

真题3:

 

真题4:

 

真题5:

 

真题6:

真题7:

 

真题8:

三、栈、队列真题

真题1:

利用两个栈可以模拟一个队列!!!

 

真题2:

出队列的序列只有一种。 入队和出队序列是一样的。

真题3:

 

真题4:

真题5:

真题6:

 

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

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

相关文章

SpringBoot注解--06--注解@Validated

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1 简述1.1 Validated作用1.2 所有参数注解含义1.3 异常处理1.4 Valid和Validated比较Valid级联校验 2.Validated 分组校验1.1为何要分组校验?1.2 代码案…

ERP 系统架构的设计与实践总结

企业资源计划(ERP)系统是一种集成多个业务功能的综合性软件解决方案。在设计和实践 ERP 系统架构时,需要考虑诸多因素,以确保系统能够满足企业的需求,并提供高效、可靠、安全的服务。本文将介绍一些关键的设计原则和实…

2023年全球软件开发大会(QCon上海站2023):核心内容与学习收获(附大会核心PPT下载)

在信息化和全球化日益加速的今天,软件开发技术日新月异,对全球各行各业产生了深远影响。2023年全球软件开发大会(QCon上海站2023)无疑成为行业内外瞩目的焦点。本次大会汇集了全球顶级的软件开发专家、企业领袖、研究者&#xff0…

Filter与Listener(Java Web)

Filter与Listener(Java Web) 概念:Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。过滤器一般完成一些通用的操作,比如:权限控制、…

Hudi学习 6:Hudi使用

准备工作: 1.安装hdfs https://mp.csdn.net/mp_blog/creation/editor/109689143 2.安装spark spark学习4:spark安装_hzp666的博客-CSDN博客 3.安装Scala Hudi学习6:安装和基本操作_hzp666的博客-CSDN博客 spark-shell 写入和读取hudi 2.…

鸿蒙应用开发-自定义可删除列表弹窗

功能介绍: 自定义列表弹窗,可以对弹窗的列表点击删除,参考文档创建列表,自定义弹窗文档自定义弹窗(CustomDialog)。 知识点: 熟悉对List控件的使用。熟悉对List点击删除熟悉自定义弹窗。 使…

2024美赛C题完整解题教程及代码 网球运动的势头

2024 MCM Problem C: Momentum in Tennis (网球运动的势头) 注:在网球运动中,"势头"通常指的是比赛中因一系列事件(如连续得分)而形成的动力或趋势,这可能对比赛结果产生重要影响。球…

【Unity知识点详解】自定义程序集

今天来介绍一下Unity中的自定义程序集。在项目开发中我们经常接触到第三方插件的程序集,如DOTween、Newtonsoft.Json等。 使用自定义程序集有这么几个好处: 方便代码的的复用。当某一功能模块需要在多个项目中重复使用时,可以将代码编译成程…

canvas设置图形各种混合模式,类似photoshop效果

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

树莓派zero/zero w的区别

直观区别 1、zero没有WiFi和蓝牙模块,当然也没有网线接口,适合不需要网络的场景需求。 2、zero w带有WiFi和蓝牙模块,没有网线接口。适合需要网络的场景需求。 选购建议 我一般都是看有没有网络接口或者WiFi支持(一定要选择焊接…

未来电话呼叫技术的社会影响与发展趋势----云微呼

未来电话呼叫技术将以更为智能化、便捷化和个性化为主要发展趋势,其所带来的社会影响也将是多层面的。以下将探讨未来电话呼叫技术可能的发展趋势以及对社会的影响: 智能化助力生活便捷: 未来电话呼叫技术将更加智能化,通过人工智…

《计算机网络简易速速上手小册》第10章:未来网络技术趋势(2024 最新版)

文章目录 10.1 边缘计算与网络设计 - 未来网络的速度与激情10.1.1 基础知识10.1.2 重点案例:使用 Python 实现边缘计算的实时视频分析准备工作Python 脚本示例 10.1.3 拓展案例1:智能交通系统Python 脚本示例 - 边缘计算设备上的交通流量分析 10.1.4 拓展…

牛客网 OR76 两个整数二进制位不同个数

前提需备知识: 算法:n&(n-1)是用来求n中1的个数 常用代码形式为: while(n){count;nn&(n-1); //每次减去1的个数} 关于该算法的推导可以见http://t.csdnimg.cn/Tld2S,本文就不再赘述 思路&…

三种pdf转ppt方法?学会这几招轻松搞定转换

三种pdf转ppt方法?在当今的工作和生活中,PDF和PPT这两种文件格式常常会让我们感到困扰。有时候我们需要将PDF文件转换成PPT格式,以便更好地进行演示或工作汇报。但是,如何快速、准确地完成这项任务呢?本文将为你揭秘三…

4.java中的输入输出/输入中的next和nextLine区别问题

(笔试会经常让我们自己去处理输入输出) 一.输出到控制台 println 输出的内容自带 \n(换行) print 不带 \n printf 的格式化输出方式和 C 语言的 printf 是基本一致的. String msg "Hello, World!";System.out.print(m…

非常好看的CSS加载中特效,引用css文件既可用

非常好看的CSS加载中特效 demo效果源码&#xff1a; <!DOCTYPE html5> <head><link rel"stylesheet" type"text/css" href"demo.css"/><link rel"stylesheet" type"text/css" href"loaders.css&…

C语言内存分配函数知识汇总

C语言中的主要内存分配函数包括&#xff1a; 1. malloc() - 函数原型&#xff1a;void *malloc(size_t size) - 功能&#xff1a;动态分配指定大小&#xff08;以字节为单位&#xff09;的连续内存空间。 - 返回值&#xff1a;成功分配内存时&#xff0c;返回指向该内存区域…

力扣热门100题刷题笔记 - 3.无重复字符的最长子串

力扣热门100题 - 3.无重复字符的最长子串 题目链接&#xff1a;3. 无重复字符的最长子串 题目描述&#xff1a; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例&#xff1a; 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字…

全球降水数据产品介绍

一、数据基本概况 降水数据在气象学、水文学、农业、生态学等领域有着广泛的用途。以下是一些降水数据的主要用途&#xff1a; 气象预报和监测&#xff1a; 降水数据是气象预报的重要组成部分&#xff0c;对预测天气、气候和自然灾害&#xff08;如暴雨、洪水&#xff09;至关…

Python学习从0到1 day13 Python数据容器.4.set集合、dict字典,映射

他往黑夜里去了&#xff0c;我陪他 ——24.2.4 一、set集合 1.为什么使用集合&#xff1f; 通过特性来分析&#xff1a; 列表可修改、支持重复元素且有序 元组、字符串不可修改、支持重复元素且有序 局限在于&#xff1a;它们都支持重复元素 当场景需要对内容进行去重处理&am…