栈既可以用数组来实现,也可以用链表来实现。用数组实现的栈,我们叫作顺序栈,用链表实现的栈,我们叫作链式栈。 ...
分类:
其他好文 时间:
2020-02-16 12:42:53
阅读次数:
68
关于栈与队列 栈与队列是特殊的线性表。 访问,插入,删除等操作只能在栈顶进行;对于队列,元素只能从队尾插入,从队头删除和访问。 换句话说,栈和队列是有操作限制的线性表。 顺序存储的栈称为顺序栈;链式存储的栈称为链式栈。 基于数组实现栈 基于链表实现栈 基于数组实现队列 基于链表实现队列 ...
分类:
其他好文 时间:
2019-10-08 14:20:51
阅读次数:
85
1.栈的原理 后进先出(LIFO-last in first out):最后插入的元素最先出来,是一种“操作受限”的线性表,只允许在端插入和删除数据 2.栈的实现 顺序栈:用数组实现,顺序栈需要动态扩容,在初始化时需要给定一个固定大小的数组,当栈大于固定大小时需要扩充数组的大小。 链式栈:用链表实现 ...
分类:
编程语言 时间:
2019-09-27 22:49:21
阅读次数:
112
Stack 后进先出 使用数组实现的叫顺序栈 使用链表实现的叫链式栈 顺序栈的实现代码 对于顺序栈 ,栈满了之后需要动态扩容 使用均摊分析法,入栈的时间复杂度为O(1) 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 使用两个栈 Map: ...
分类:
编程语言 时间:
2019-08-18 19:41:24
阅读次数:
119
第17课-栈课后练习 1. 分析顺序栈和链式栈各个操作的算法时间复杂度。 2. 我们在创建顺序栈时将队尾定义为栈顶,而在创建链式栈时将队头定义为栈顶。那么我们反过来可行吗(即:顺序栈操作队头,链式栈操作队尾)?为什么? 3. 将后缀表达式的转换和计算合并为一个完整的程序,当用户输入合法的s四则运算表 ...
分类:
其他好文 时间:
2019-08-08 19:07:01
阅读次数:
94
链式栈 static.h static.c main.c 测试: success ! ...
分类:
其他好文 时间:
2019-06-26 19:25:33
阅读次数:
116
栈可以分为 顺序栈: 数组实现 链式栈: 链表实现 空间复杂度 栈的空间复杂度: 有一个n个元素的栈, 在入栈和出栈过程中, 只需要存储一个临时变量存储空间, 所以空间复杂度是O(1) 并不是说栈有n个元素, 空间复杂度就是O(n), 而是指除了原本的空间外, 算法需要的额外空间 栈要满足 的特性, ...
分类:
编程语言 时间:
2019-06-07 22:47:28
阅读次数:
126
【栈】 Python实现: 1. 用数组实现一个顺序栈 2. 用链表实现一个链式栈 3. 编程模拟实现一个浏览器的前进、后退功能 练习: 1. 有效的括号 https://leetcode-cn.com/problems/valid-parentheses/ 思路:栈+字典 2. 最长有效的括号 [ ...
分类:
编程语言 时间:
2019-05-15 14:41:23
阅读次数:
176