栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶(top),相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈(push),它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈(push), ...
分类:
编程语言 时间:
2020-04-28 00:21:04
阅读次数:
52
一、什么是栈? 这篇文章所言的栈是一种数据结构,不要与栈区混淆。数据结构中的栈是一种线性表,特点是只允许在表头进行数据的插入和删除,也就是数据遵循先进后出的原则,一般把一端称为栈顶(top),另一端称为栈底(base)。 二、栈的基本操作 对栈的基本操作只有两种,一种是入栈(push),一种是出栈( ...
分类:
其他好文 时间:
2020-04-27 17:41:17
阅读次数:
65
第三章主要讲了栈和队列,还提到了递归,栈是先进后出,而队列是先进先出的。栈只需要在栈顶操作,就可以实现入栈出栈的操作,而队列需要头指针和尾指针,出队时输出队头,入队时从队尾进入。不过要注意,出栈或者出队列,都要注意是否为空,而入栈和入队列是要注意是否已经满。还有没有定义的时候,要注意初始化,而且栈和 ...
分类:
其他好文 时间:
2020-04-26 22:33:32
阅读次数:
77
Java 虚拟机栈:线程私有,生命周期和线程一致。描述的是 Java 方法执行的内存模型:每个方法在执行时都会床创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行结束,就对应着一个栈帧从虚拟机栈中入栈到出栈的。 本地方法栈:Java ...
分类:
其他好文 时间:
2020-04-26 14:03:32
阅读次数:
87
这一章学习了栈和队列栈学习了它的基本操作:初始化,入栈,出栈,取栈顶元素。值得注意的一点是用链表存储方式的话,指针是指向上一个节点的,老是忘记。例子如括号匹配。然后学了递归,和栈类似也是先进后出,核心思想是“分而治之”,是从问题顶层分解到底层的思想,与之相对的是迭代,它是自底向上分析计算的。递归代码 ...
分类:
其他好文 时间:
2020-04-26 01:34:09
阅读次数:
64
中缀表达式转换为后缀表达式 中缀表达式转后缀表达式思路: 举例: 代码演示: ...
分类:
编程语言 时间:
2020-04-25 17:08:03
阅读次数:
75
数据结构中C++常用的知识 模版 type 是函数所使用的数据类型的占位符名称。 看起来像返回了一个值,但其实因为函数类型是引用,所以返回的是变量的左值。 当返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用 用的比较经典的例 ...
分类:
编程语言 时间:
2020-04-25 00:40:52
阅读次数:
78
单调栈典型例题 https://leetcode-cn.com/problems/maximal-rectangle/ 思路:构造直方图的高度的单调递增栈结构,栈中存储位置信息,获得当前位置能够向左和向右扩展最大距离再乘以当前高度可得矩形面积,获得最大矩形面积即可。对于能够扩展的距离是当前入栈位置p ...
分类:
其他好文 时间:
2020-04-24 09:17:20
阅读次数:
80
SynchronousQueue 没有长度,每一个入队操作必须对应一个出队操作,或者每一个出队操作必须对应一个入栈操作,否则阻塞。SynchronousQueue内部提供两种模式TransferStack非公平模式(LIFO)和TransferQueue公平模式(FIFO)。 ...
分类:
编程语言 时间:
2020-04-23 23:22:51
阅读次数:
62
解题思路:入栈顺序即为前序,出栈顺序为中序,等价于求由前序和中序确定后序 #include <stdio.h> #include <string.h> #include <malloc.h> typedef char Element[5]; typedef struct TNode { int da ...
分类:
其他好文 时间:
2020-04-23 21:11:36
阅读次数:
103