栈 什么是栈 1.栈的英文是stack 2.栈是一个先入后出的有序列表 3.栈是限制线性表元素的插入和删除只能在线性表的同一端进行的一种特殊的线性表,允许插入和删除的一端是,为变化的一端,成为栈顶,另外的一端为固定的一端为栈底 4.栈的定义可知,最先放入栈中的元素在栈底,最后放入的元素在栈顶,而删除 ...
分类:
编程语言 时间:
2019-10-03 23:58:59
阅读次数:
175
顺序栈 参考文献 + 《数据结构(C语言版/ 严蔚敏 李冬梅 吴伟民 编)》 ...
分类:
编程语言 时间:
2019-10-02 11:02:18
阅读次数:
97
1.栈的原理 后进先出(LIFO-last in first out):最后插入的元素最先出来,是一种“操作受限”的线性表,只允许在端插入和删除数据 2.栈的实现 顺序栈:用数组实现,顺序栈需要动态扩容,在初始化时需要给定一个固定大小的数组,当栈大于固定大小时需要扩充数组的大小。 链式栈:用链表实现 ...
分类:
编程语言 时间:
2019-09-27 22:49:21
阅读次数:
112
停车场管理 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北段),若停车厂内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车迹可开入;停 ...
分类:
其他好文 时间:
2019-09-10 18:19:44
阅读次数:
99
Stack 后进先出 使用数组实现的叫顺序栈 使用链表实现的叫链式栈 顺序栈的实现代码 对于顺序栈 ,栈满了之后需要动态扩容 使用均摊分析法,入栈的时间复杂度为O(1) 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 使用两个栈 Map: ...
分类:
编程语言 时间:
2019-08-18 19:41:24
阅读次数:
119
第17课-栈课后练习 1. 分析顺序栈和链式栈各个操作的算法时间复杂度。 2. 我们在创建顺序栈时将队尾定义为栈顶,而在创建链式栈时将队头定义为栈顶。那么我们反过来可行吗(即:顺序栈操作队头,链式栈操作队尾)?为什么? 3. 将后缀表达式的转换和计算合并为一个完整的程序,当用户输入合法的s四则运算表 ...
分类:
其他好文 时间:
2019-08-08 19:07:01
阅读次数:
94
栈 栈是一种只能在一端进行插入或删除操作的线性表。 线性表:栈的逻辑结构属于线性表,只不过在操作上加了一些约束。 一端:可以插入或者删除元素的一端叫栈顶,另一端叫栈底。 顺序栈 链栈 队列 队列是一种插入元素只能在一端能进,删除元素只能在另一端进行的线性表。 线性表:队列的逻辑结构属于线性表,只不过 ...
分类:
其他好文 时间:
2019-07-13 12:08:21
阅读次数:
114
// main.cpp // stack_quhao // Created by duanqibo on 2019/6/29. // Copyright © 2019年 duanqibo. All rights reserved. // 顺序栈的操作,整数进栈,取栈顶元素,栈内剩余元素 #inclu ...
分类:
其他好文 时间:
2019-06-29 19:30:44
阅读次数:
117
栈可以分为 顺序栈: 数组实现 链式栈: 链表实现 空间复杂度 栈的空间复杂度: 有一个n个元素的栈, 在入栈和出栈过程中, 只需要存储一个临时变量存储空间, 所以空间复杂度是O(1) 并不是说栈有n个元素, 空间复杂度就是O(n), 而是指除了原本的空间外, 算法需要的额外空间 栈要满足 的特性, ...
分类:
编程语言 时间:
2019-06-07 22:47:28
阅读次数:
126