栈的定义和存储以及算法实现
来源:互联网 发布:中信证券手机版软件 编辑:程序博客网 时间:2024/06/05 13:33
栈--------仅限定在表尾进行插入和删除操作的线性表,我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(先进后出)(last in first out)的线性表,简称FIFO结构。
主意:1.栈是一个线性表,栈元素具有线性关系,即前驱后继关系。表尾(栈顶)进行插入和删除操作,不是栈底。
2.栈底是固定的,最先进栈的只能在栈底。
3.由于栈是线性表,所以栈也存在线性存储和链式存储。
栈的顺序存储结构
栈的顺序存储也是通过数组来实现的,我们把数组下表为0的一端称为栈底,定义一个top变量来指示栈顶元素在数组中的位置。但是top必须要小于栈的存储长度。当栈存储一个元素时,top为0,因此常把空栈的判定条件为top等于-1.
因为栈的插入和删除操作只能在栈顶进行,因此不存在元素的移动。但是必须要先制定栈的存储空间。
栈的链式存储结构
top作为栈顶指针。进栈操作:
出栈操作
- 栈的定义和存储以及算法实现
- 栈的定义以及不同的存储结构的AVA实现
- 数据结构学习之-二叉树的定义和存储实现
- 宏定义,以及宏的存储
- 栈的定义和实现
- 队列的定义以及实现
- 栈的顺序存储结构以及实现
- 栈的链式存储结构以及实现
- 数据结构入门学习系列-7(栈的结构以及存储方式和算法)
- 顺序栈的定义和基本算法
- 稀疏矩阵三元组存储结构的定义及其有关算法的实现
- 数据结构(5)--栈的定义以及相关操作的实现
- 灰度共生矩阵的定义以及算法
- 树的定义、存储及程序实现
- 结构体的声明,定义和赋值以及所占空间的算法
- 栈 (Stack) 的定义和实现
- python的链表定义以及实现
- 链表的定义以及实现
- 10G,11G恢复表的统计信息
- PHP插入法排序
- Html5 系列之:本地存储Storage
- Html5 系列之:桌面通知Notification
- 生成验证码
- 栈的定义和存储以及算法实现
- C/C++开发语言系列之16---C++不同类型数据间的转换
- NGUI v2.0 UI_2:UIAtlas UI图集类
- sync 命令
- LeetCode Gray Code
- jQuery ajax请求 - ajaxStart() ajaxSend() ajaxStop() ajaxComplete()方法
- UML 组件图
- c# 中委托于事件区别
- RedHat(rhel5.5_x86-client)下配置CUDA开发环境