【知识强化】第三章 栈和队列 3.1 栈

在第三章我们将继续学习三种非常重要的线性结构,分别是栈和队列的这样的受限线性表。我们将从它们的基本概念、存储结构以及相关应用这三方面进行详细的学习。最后我们将学习数组的相关知识,大家要注意一下这里的数组指的是一种线性结构,与我们之前在程序设计语言当中提到的数组类型是不同的概念。好,数组我们会学习它的定义以及它的存储结构,还有用数组来实现矩阵的压缩存储。最后还会提一个特殊的矩阵叫做稀疏矩阵。好,这就是本章所要学习的重要考点。本章所学习的知识点其实并不难,它常常出现在选择题当中,但是在之后我们解决一些算法时会经常用到本章所提到的数据结构以及在其他学科的学习过程当中我们也会有所应用,所以它是一个非常重要的基础知识。

好,本节课我们就先来学习栈的相关知识。首先来看栈的基本概念。

什么是栈呢?我们来看一个这样的小例子。我们在洗好盘子之后,都会这样依次地叠放。其实在这样一叠盘子当中,我们的操作是受限的。什么叫受限呢?我们无法从这些盘子中间的部分进行放入新盘的操作,以及拿出盘子的操作。我们只能在这些盘子的顶部进行放入新盘子的操作,以及拿走盘子的操作。这种操作就是我们刚刚所说的受限操作。其实它用接下来要学习的栈,有非常多的相似之处。

我们来看书中这样的定义。栈,英文名是Stack,是一叠一堆的意思。书中是这样定义它的,只允许在一端进行插入或者删除操作的线性表。在定义当中我们只要注意两点,第一点是栈一定是线性表,它具有线性表的所有特点。第二点是它是受限线性表。怎样受限呢?是只允许在一端进行插入或者删除的线性表。好,这就是栈的定义。接下来我们用数据元素来代替盘子画出一个栈的例子。

原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/11403518.html

时间: 2024-10-05 04:58:24

【知识强化】第三章 栈和队列 3.1 栈的相关文章

SDUT-3335_数据结构实验之栈与队列八:栈的基本操作

数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 堆栈是一种基本的数据结构.堆栈具有两种基本操作方式,push 和 pop.push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出.现在我们就来验证一下堆栈的使用. Input 首先输入整数t(1 <= t <= 10),代表测试的组数,以后是 t 组输入. 对于每组测试数据,第一行输入两个正整数 m(1 <= m &

《软件工程 ——理论、方法与实践》知识概括第三章 软件项目管理

第3章 软件项目管理   软件项目管理有利于将软件开发人员的个人开发能力转化为企业的开发能力,并使企业的软件开发能力不断提高和成熟. 一.软件项目管理概述 软件项目管理是为了使软件项目能够按照预定的成本.进度.质量顺利完成,而对成本.人员.进度.质量.风险等进行分析和管理的活动. 软件项目的特征:1.软件产品的不可见性:2.项目的高度不确定性:3.软件过程的多变化性:4.软件人员的高流动性. 软件项目管理的“4P”:人员(People).产品(Product).过程(Process)和项目(Pr

【知识强化】第二章 数据的表示和运算 2.2 定点数的表示与运算

我们进入第二章的学习,就是定点数的表示和运算. 那关于定点数呢我们分为两块内容,一块呢就是定点数的表示也就是我们这一节的内容,一块呢就是定点数的运算.这两块内容呢都非常的难,也都非常的重点.希望大家呢引起重视. 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/11370240.html

数据结构和算法之栈和队列二:栈的压入,弹出序列

当时我在学习这个的时候也是非常不理解这个问题,一个栈的压入和弹出序列的判断一看不就知道了么,还去判断干嘛.只要符合后进先出的规则就行.但是我在这里简单说一下这个压入和弹出序列是怎么回事.就是我们给定假设的两个序列,一个为压入序列,一个为弹出序列.然后我们再通过一个辅助的栈,把压入序列的数据一个一个push()进入临时的辅助栈中,如果栈顶元素刚好和弹出序列的数据一样,那么我们就弹出,如果不一样我们就将压入序列的数据继续压入临时栈中,直到到达序列结束.如果压入序列结束,临时栈全部数据弹出那么就是一个

C语言数据结构——第三章 栈和队列

三.栈和队列 栈和队列是两种重要的线性结构.从数据结构的角度来看,栈和队列也是线性表,它的特殊性在于栈和队列的基本操作是线性表操作的子集,它们的操作相对于线性表来说是受到限制的,因此,可以称其为限定性的数据结构. 从数据类型的角度看,它们是和线性表大不相同的两种重要的抽象数据类型,在面向对象的程序设计中,它们是多型数据类型. 3.1-栈 3.1.1-抽象数据类型栈的定义 栈:是限定仅在表尾进行插入或删除操作的线性表,又可以称为后进先出的线性表. 栈顶:栈的表尾端 栈底:栈的表头端 空栈:不含元素

数据结构复习--栈和队列(1)--栈

1.栈和队列简介: 栈和队列是非常重要的两种数据结构,在软件设计中应用很多.栈和队列也是线性结构,线性表,栈和队列这三种数据元素和数据元素间的逻辑完全相同.差别是线性表的操作不受限制,而栈和队列的操作收到限制,栈的操作只能在表的一端进行,队列的插入操作在表的一端进行而其它操作在表的另一端进行,所以把栈和队列称为操作受限的线性表 栈: 栈(Stack)是操作限定在表的尾端进行的线性表.表尾由于要进行插入,删除等操作,所以,它具有特殊含义,把表尾成为栈顶(Top),另一端是固定的,叫栈底(Botto

算法初级面试题03——队列实现栈、栈实现队列、转圈打印矩阵、旋转矩阵、反转链表、之字打印矩阵、排序矩阵中找数

第一部分主要讨论:栈.队列.数组矩阵相关的面试题 题目一 用数组结构实现大小固定的队列和栈 public static class ArrayStack { private Integer[] arr; private Integer size; public ArrayStack(int initSize) { if (initSize < 0) { throw new IllegalArgumentException("The init size is less than 0"

如何用栈实现队列

about 算法 项目介绍 工作之余,代码敲多了,停下来思考思考,会有异常不到的收获...只为更好的自己 如何用栈实现队列? 提示下:用一个栈肯定是没办法实现队列,但如果我们有两个栈呢? 分析:栈和队列的特性 栈是先进后出,FILO 出入元素都是在同一端(栈顶) 入栈 1540432924606.png 出栈 1540432988027.png 队列是先进先出,FIFO 出入元素是在不同的两端(队头和队尾) 入栈 1540433080831.png 出栈 1540433109205.png 思考

栈和队列数据结构

栈和队列都是常用的数据结构.栈的应用非常的广泛,其原理也是非常经典的. 一.栈 ①栈(stack)又名堆栈,他是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一段被称为栈顶,相对地,把另一端称为栈底. ②栈就是一个桶,后放进去的先拿出来,它下面本来有的东西要等它出来之后出来(先进后出→FILO----FirstIn/LastOut) ③栈是操作系统在建立某个进程时或者线程(在支持多线程的操作系统是线程)为这个线程建立的存储区域,该区域具有FIFO的特性,在编译的时候可以指定