| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 数据结构(二):part1:栈 -> 正文阅读 |
|
[数据结构与算法]数据结构(二):part1:栈 |
目录 1.认识栈:记住栈的以下特点: 1.先进先出 2.只可从最上面的元素出栈,不能从底下出去。 2.栈的实现:由上可知,栈可以是多种实现方法,可以是链表,也可以是顺序表,这里我们用顺序表实现: 预处理:
?top是用来记录栈顶,capacity是用来记录栈内的容量大小。 3.初始化、创建、销毁:初始化没什么好说的。 销毁是肯定的,不然会造成内存的浪费。
值得一提的是,这里的top既可以设置成0,也可以设置成-1. 设置成0就是记录栈顶的后一个元素,设置成-1就是记录栈的当前元素,并且两种方法入栈略有差异 4.出入栈:从上面可以知道,出入站遵循先进先出的特点,结合上面说的-1\0之间的差异,以下这样实现:
解释:为什么出栈没有真正的出?有些人可能认为直接把栈顶元素赋值成0,这样做是有所缺陷的. 比如你栈里面存放的是结构体变量怎么办??所以可以直接采取这种粗暴的方法。 5.栈的大小,是否为空:
问题:这里的top为什么要++才能返回? 因为我们这里top初始化是-1,记录的是当前栈顶元素位置,比如只有一个元素,那么top就是0显然不合理。 6.栈顶元素查询:这个太水了,没什么多说的:
以上就是栈的一些碎碎念。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 18:26:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |