栈和队列学习总结

article/2025/9/7 4:51:29

一、栈

1、特点及应用

      先进后出。(如果会和队列先进先出记混的话,就记场景吧:弹栈弹栈,就是把最上面的最新进来的弹出去;而队列就像我们火车站排队检票出站一样,谁排在前面谁就先出去。)

      应用的话,其实我们经常接触呀。比如Undo操作(就是撤销操作)就是使用的栈的思想,以及程序调用的系统栈。下面我们举一个经典的括号匹配的例子:

      题目要求:

给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

       解题思路:第一想到的应该就是用栈来做。如果是  {   (  [   之中的,就直接压入栈,如果有出现了   )  }   ]   之间的,就开始匹配。先从栈顶的元素开始匹配,如果不同则直接返回false;如果相同则继续匹配,直到栈里ianshi空的。

       源码如下:

import java.util.Stack;class Solution {public boolean isValid(String s) {Stack<Character> stack = new Stack<>();for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c == '(' || c == '{' || c == '[') {stack.push(c);} else {if (stack.isEmpty())return false;char top = stack.pop();if (c == ')' && top != '(')return false;if (c == '}' && top != '{')return false;if (c == ']' && top != '[')return false;}}return stack.isEmpty();}
}

二、队列

       先进先出。

1、循环队列

        循环队列是很常见的数据结构,在大学计算机课程上也会遇到,被应用到很多场景,比如管道的实现(固定的容量64K)、MapReduce中数据溢写入磁盘(默认100M,超过80M溢写)、网络库中常见的IO buffer等等。 
        循环队列需要两个索引front和tail,分别指向队列头和尾(下次要放入的下标),假设队列长度为length: 


http://chatgpt.dhexx.cn/article/5rjtXLxJ.shtml

相关文章

栈和队列的共同点和不同点

堆栈都是一种数据项按序排列的数据结构&#xff0c;只能在一端(称为栈顶(top))对数据项进行插入和删除。 要点&#xff1a;堆&#xff1a;顺序随意 栈&#xff1a;后进先出(Last-In/First-Out) 堆 堆&#xff1a;什么是堆&#xff1f;又该怎么理解呢&#xff1f; ①堆通常是一…

栈和队列实现和实例分析

目录 前言栈队列实例分析结语 前言 本篇文章主要讲述数据结构中栈和队列的实现&#xff0c;以及相关实例分析。 栈 注意本文所讲述的栈是数据结构的一种&#xff0c;并不是内存划区中的栈区&#xff0c;但是这两者有相似之处&#xff0c;即&#xff1a;存储数据时满足数据先…

栈和队列的共同处和不同处

共同处 栈和队列的共同处是&#xff1a;它们都是由几个数据特性相同的元素组成的有限序列&#xff0c;也就是所谓的线性表。 不同处 队列 队列&#xff08;queue&#xff09;是限定仅在表的一端插入元素、在另一端删除元素的线性表。 在队列中&#xff0c;允许插入的一端被…

索引的优缺点以及索引的设计原则

索引概述 索引&#xff08;index&#xff09; 是帮助 MySQL 高效获取数据的数据结构&#xff08;有序&#xff09;。 在数据之外&#xff0c;数据库系统还维护者满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0…

SQL数据库之索引优缺点

SQL数据库之索引使用原则及利弊 索引是对数据库表中一列或多列的值进行排序的一种结构&#xff0c;使用索引可快速访问数据库表中的特定信息。 优点 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。 可以大大加快数据的检索速度&#xff0c;这也是创建…

Oracle索引的建立及优缺点

在看公司建表语句时发现了这样一段代码 本着学习的态度面向百度&#xff1a;&#xff1a;&#xff1a;&#xff1a;&#xff1a; 原来这是Oracle的索引 Oracle的索引说明 1&#xff09;索引是数据库对象之一&#xff0c;用于加快数据的检索&#xff0c;类似于书籍的索引。在…

MySQL索引的优缺点

MySQL 中的索引简介 1、索引的优点 为什么要创建索引&#xff1f;这是因为&#xff0c;创建索引可以大大提高系统的查询性能。 第一、通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。 第二、可以大大加快数据的检索速度&#xff0c;这也是创建索引的最…

MySQL索引的使用知识有哪些?

面试造火箭&#xff0c;工作拧螺丝&#xff0c;虽然工作时我们都在使用基本的 sql&#xff0c;但是不好意思&#xff0c;面试 90% 都在问原理&#xff0c;例如索引&#xff0c;锁&#xff0c;日志&#xff0c;引擎啊等等。 在关系数据库中&#xff0c;索引是一种单独的、物理的…

索引的数据结构与优缺点

1、索引的数据结构 什么是索引&#xff1f; 索引就是mysql为了提高查询数据的一种数据结构。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法 的数据结构&#xff0c;这些数据结构以某种方式引用(指向)数据&#xff0c;这样就可以在这些数据结构上实现高级查找 算法…

Oracle 数据库:ORA-12541: TNS: 无监听程序 的解决办法

路径下D:\app\ou\product\11.2.0\dbhome_1\NETWORK\ADMIN host后面地址全改为 " HOSTlocalhost " 。 以上两个配置文件修改完成后&#xff0c;Win R 在弹出框中输入 " SERVICES.MSC " &#xff0c;找到Oracle的服务&#xff08;OracleService&#xff09;…

ora12541+tns-01153未能处理字符串

操作系统&#xff1a; windows2008 数据库&#xff1a;oracle11g 数据库运行中突然连接不上 ora12541TNS:无监听程序 数据库服务器端查看&#xff1a; 使用dos端sqlplus登录正常 重启Oracle服务依然无法登陆 ora12541TNS plsql无法连接 使用 lsnrctl status 查看监听状态…

plsql远程访问数据库 解决 ora12170TNS 连接超时,ora-12541:TNS:无监听程序

自己在虚机linux安装了o12版本后&#xff0c;计划通过wins主机通过plsql操作oracle&#xff0c; 结果没有顺利链接&#xff0c;plsql报错 排错步骤: 1.查看网络是否通畅 打开cmd, ping 数据库IP 2. 查看端口是否通畅 打开cmd,tnsping 数据库IP 如果piing不通,可能是防火墙问…

ora-12541

描述&#xff1a;oracle 19c plsql登录报错 原因&#xff1a;修改了服务器的名称为ods 解决&#xff1a;修改listener.ora&#xff0c;tnsnames.ora文件中服务器名为ods&#xff0c;重启监听即可

oracle数据库只能用127.0.0.1和localhost登录,用ip无法登陆,提示ora12541监听错误解决办法

这些修改都在oracle安装完成后的服务端文件中修改&#xff0c;客户端里面的监听文件默认是没有的&#xff0c;也不需要配置 oracle服务端&#xff0c;客户端安装完成后&#xff0c; 服务端监听文件 E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.or…

Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务

最简单的有可能是你的服务还没有开启&#xff0c;需要启动服务&#xff01;&#xff01;&#xff01;&#xff01; 在连接数据库的时候&#xff0c;有时会遇到一个“ORA12514&#xff1a;监听程序当前无法识别连接描述符中请求的服务”的错误&#xff0c;这个错误其实就是数据…

使用Navicat连接Oracle数据库及ORA-12541: TNS: 无监听程序、ORA-28547:connection to server failed、ORA-12514:TNS报错解决方案

1、Navicat的安装请参考:图形化界面之Navicat Premium 12 的安装与使用_蓝多多的小仓库的博客-CSDN博客_navicat premium12使用 2、打开Navicat,选择连接--->Oracle 3、配置常规和高级选项 这里服务名请参考: 为了避免后续存在权限问题,这里角色选择SYSDBA: 4、各项…

oracle报错ORA-12514

问题&#xff1a;oracle使用服务名orcl登录不成功&#xff0c;并且报错 ORA-12514, TNS:listener does not currently know of service requested in conn原因分析&#xff1a; ORA-12514 错误通常表示 Oracle 数据库监听器无法识别客户端请求的服务名称。这可能是由于以下原因…

Oracle ORA-12541的处理

Oracle ORA-12541的处理 Lsnrctl status Lsnrctl start 尝试链接进去sqlplus xxx/xxx198.126.12.3/fpd ps -ef | grep pmon 确定实例没有打开 查看数据库日志的停库原因 发现数据库日志是被截断的&#xff0c;数据库日志被截断一般是系统冗机的问题 那就直接startup开库 因…

连接linux数据库Oracle时报错ORA-12541: TNS: 无监听程序重启后提示出现ORA-01034和ORA-27101

1 windows上安装Oracle的客户端。 2 确保linux服务器上的1521端口开放 3 看你的window机器是够能够ping同linux服务器的ip地址 4 在windows中的Oracle客户端的tnsnames.ora里添加你要连接的Oracle&#xff08;即虚拟里Linux的Oracle&#xff09;信息。 5 虚拟机linux打开Or…

ORA-12541:TNS:无监听程序

最近很郁闷&#xff0c;本人电脑上安装了oracle11g,每次关机再开机后登录PL/SQL DEVELOPER都提示ora-12541无监听程序&#xff0c;网上找了半天&#xff0c;重新配置listener.ora,tnsnames.ora,可是还是不行&#xff0c;通过在dos命令窗口重启监听就好了&#xff0c;有没有网友…