热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

线性表之顺序栈

学习汇总(持续更新)从零搭建后端基础设施系列(一)--背景介绍**基本思想:**顺序栈相当于顺序表的子集&

==> 学习汇总(持续更新)
==> 从零搭建后端基础设施系列(一)-- 背景介绍



**基本思想:**顺序栈相当于顺序表的子集,就是限制了相关操作,只允许在栈顶操作元素,基本的操作有入栈、出栈、获取栈顶元素等。

和链栈相比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即可

线性表之双向链表
线性表之循环链表
线性表之单链表
线性表之顺序表


推荐阅读
author-avatar
荆怡婷151
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有