作者:荆怡婷151 | 来源:互联网 | 2023-10-12 17:53
==> 学习汇总(持续更新) ==> 从零搭建后端基础设施系列(一)-- 背景介绍
**基本思想:**顺序栈相当于顺序表的子集,就是限制了相关操作,只允许在栈顶操作元素,基本的操作有入栈、出栈、获取栈顶元素等。
和链栈相比03除了不能动态增长外(目前为止),其余的操作时间复杂度都一样。
C代码实现下载 C++代码实现下载 java代码实现下载 (备用下载地址)
实现功能: 1.void InitStack(); 初始化栈 1).new一块连续的空间存放数据。 2).初始化栈顶指针(这里的指针并不是真的指针,而是一个指示变量) 如图:
2.void DestroyStack(); 销毁栈 1).delete m_data。 2).把栈顶指针指向-1
3.bool IsEmpty(); 栈是否为空 如果top == -1 则栈为空
4.bool IsFull(); 栈是否满了 如果top == stackSize - 1 则栈已满
5.int GetSize(); 获取当前栈的长度 直接返回top + 1
6.void Push(T e); 入栈
m_data[++m_top] = e; 这个操作之前一定要判断栈是否满,否则会出现数组越界。 如图: ![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTIyMTQzMTQ1MDc2?x-oss-process=image/format,png)
7.void Pop(); 出栈(不返回栈顶元素) 顺序栈中,不需要删除元素,只需要改变栈顶指针即可 如图:
8.T PopE(); 出栈(返回栈顶元素)
9.T GetTop(); 获取栈顶元素
10.void Print(); 遍历栈
11.void ClearStack(); 清空栈 只需要把top指向-1即可
线性表之双向链表 线性表之循环链表 线性表之单链表 线性表之顺序表