数据结构三:彻底理解栈(一)小白篇

2023-05-16

  • 个人的小理解
  • 考研方向
  • 害羞的栈
    • 栈的结构
    • 形象概括栈的元素进出过程
  • 栈的实现之顺序存储过程结构
  • 栈的实现之链式存储过程结构

个人的小理解

栈,没有那么复杂,可以直接理解成是一种“形式”,在我的数据结构一的理解中写的也很详细,就是一种常用的数据结构而已啦,这种数据结构就是一个是我规定了“先进后出”这种规则,希望大家可以将自己的思维放宽,这不是什么很难的东西,说过了,数据结构这个东西是你自己规定的东西,你想设计怎么样牛逼的都可以,比如我想要设计一种模式:进两个,出两个,这种形式那么你就可以设计这种形式,然后用很多不同的方法去实现它
记住:不论遇到什么新的数据结构,都应该从“逻辑结构”、“数据运算”、“存储结构”三个方面去概述和理解,在以后讨论数据结构类型我都将采取这种方法
现在的栈也是这样啊,这不过这个比较简单,只是简简单单的“先进后出”,记住,这只是一种“形式”,你可以用很多不同的方法去实现它
了解的朋友可以知道,栈是属于线性表这一块的,由于只能“先进后出”,所以也被人们称为“受限的线性表”

考研方向

在考研这种方向中,对于栈和队列这一类考的并不是很难,难就难在出题的形式比较灵活,比如说出栈的合理性啊、出栈的过程啊之类的,大家也发现了,他们都是属于线性表那一块的内容的,所以也经常出现在算法设计题中

害羞的栈

栈就是——只允许在线性表一端进行插入、删除、巴拉巴拉操作的线性表,大家记住了就是一个表而已,想象一下自己的瓶子,瓶子的底部是封住的,所以我只能从上面倒水进去,栈就是这样的存在
在这里插入图片描述

栈的结构

栈底(Bottom):就像瓶子的底部,在这里呢,不允许进行删除操作,如果底部都没了瓶子就已经不是瓶子了
栈顶(top):和前面的反过来喽,瓶口是可以装水的,故是可以进行删除或者插入的一端

形象概括栈的元素进出过程

想象瓶子装石头过程,元素是石头,而瓶子就是栈结构,下面自己做了一个图,有点丑,仅用来加强理解:

在这里插入图片描述
现在往这个瓶子里加入元素:
在这里插入图片描述
在这里大家应该可以理解什么是“先进后出”了吧,图中看到的就是1先进去,但是出去的话确实3先出去,1变成了最后一个出去的,这里也扯到了非常常见的一类题型:栈的进出顺序
就是给出进栈的顺序,让你判断出栈的顺序是怎么样的,比较简单,大家可以画个图简单的判断一下就Ok
在这里插入图片描述
在这里插入图片描述

栈的实现之顺序存储过程结构

在前面一个章节我们知道线性表有两种实现的方法,那么既然栈也是属于线性表一种,那么它也应该有两种实现方法
一个数据结构的结构就体现在定义它的那个结构体中,在前面已经对栈的结构进行了很详细的描述——栈顶、栈底
那么一般我们就把栈定义成:
在这里插入图片描述
当然,我们也会有一些限定和规定,毕竟这个东西被创建出来了,肯定就会有自己的规则,不可能乱象丛生(好像用在这里不太对…),我们讨论规定一般说的就是“状态”
在这里对于栈的规定主要有:即可以理解成对于“栈不同状态”的深入,在下一篇将详细说明栈的基运算,这一篇只是了解栈的结构

栈的实现之链式存储过程结构

在这里插入图片描述
一般的形式为:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构三:彻底理解栈(一)小白篇 的相关文章

随机推荐