| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【化解数据结构】什么是栈?手写实现一个栈结构 -> 正文阅读 |
|
[数据结构与算法]【化解数据结构】什么是栈?手写实现一个栈结构 |
💡 内容抢先看
📢 碎碎念
一、什么是栈结构?栈是一种特殊的线性表,它可以用数组或链表来实现,通常用数组来实现,但是它和数组又很不一样。 如图,可以很形象的描述一个栈结构 这就像生活中的桶一样,只能从桶口放东西进去,从桶顶取东西出来 在生活中还有着很多例子,例如:装羽毛球的球桶,我们每次都只能拿最上面的羽毛球,放到最上面 因此对于一个栈有栈顶和栈底之分 栈顶可以形象的理解为桶口 栈底则可以是桶底 在 二、栈结构有哪些方法呢?和一般的数据结构一样,它有着插入,取出的方法,我们把它们叫作:入栈和出栈
接下来我们就一一实现它们 👇 👇 👇 三、手写实现一个栈结构在这里我采用数组来实现栈这个数据结构,因为 1. 创建一个 Stack 类首先我们先创建一个
2. 实现 push 方法实现入栈的方法,这里就是我们采用数组的好处了
3. 实现 pop 方法实现出栈的方法,根据后进先出的原则,也就是取出栈顶元素,相当于取出数组的最后一位
实现了入栈和出栈,一个简单的栈结构就已经基本实现了,我们来试试操作它吧 首先我们需要
动图效果 可以看到每次都在数组尾部添加元素, 4. 实现 peek 方法
实现的方法也很简单,我们只要返回数组的最后一位就可以了
使用
5. 实现 size 方法
调用
6. 实现 isEmpty 方法
我们直接判断一下
使用
7. 实现 clear 方法
8. 完整的栈结构
四、LeetCode 实战20. 有效的括号
这是一道很经典的题目,我们可以利用栈后进先出的特点来解题,因为我们需要左右括号匹配
因此我们可以编写代码
📖 总结
本文关于栈的内容就到这里结束了,相信你一定能从中学到很多东西。下一篇文章将带你探索队列的奥秘 欢迎大家关注本专栏,持续关注最新文章~
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:50:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |