Stack
栈是数据结构中学习的第一个较为特殊的结构,首要特点就是先进后出,就好像一个细细长长的管子,你一个一个往里面放小球(这个小球刚好能放进去),你每次放只能放在顶部,每次拿也只能拿取顶部的。
栈的顺序存储
定义
1 |
|
初始化
1 | //初始化栈 |
也可以直接指向栈顶,不同的是判断栈已满的条件不同了
入栈操作
1 | bool Push(SqStack &S,ElemType x){//新元素入栈 |
出栈操作
1 | //出栈操作 |
读取栈顶元素
1 | bool GetTop(SqStack S,ElemType &x){ |
此外还有一个特殊的栈——共享栈,即两个栈共享同一片空间,就是一个连续空间中,一个栈从头开始存储,一个从尾部开始存储。
栈的链式存储
本质就是一个单链表,限制其只能在一端进行操作。限制进出栈的操作只能在头节点/指针进行,同样也有带头结点和不带头结点的两个实现版本。链栈。
本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kirius!