栈的基本概念

栈是一种线性表,只允许在栈顶进行插入和删除操作,具有后进先出的特点。常见的栈操作包括初始化、判断栈空、进栈、出栈、读栈顶元素以及销毁栈。顺序存储的栈使用一组连续存储单元,并通过top指针指示栈顶位置。栈的空栈状态通常表示为top等于-1,满栈则取决于预设的StackSize。
摘要由CSDN通过智能技术生成

栈的基本概念

定义

只允许再一段插入或删除的线性表. 栈是一种线性表  但限定这种线性表 只能在某一段进行插入和删除操作

 

栈顶:线性表允许进行插入删除的那一端

栈底:固定的 不允许进行插入和删除的另一端

空栈: 不含任何元素的空表

栈是先进后出

栈的前中后缀表达式: 首先运算优先级最高的 然后将运算符 放两个整体之前就是前缀放两个整体之后就是后缀

栈的常见基本操作
InitStack(&S):初始化一个空栈S。
StackEmpty(S):判断一个栈是否为空,若栈为空则返回true,否则返回false。
Push(&S, x):进栈(栈的插入操作),若栈S未满,则将x加入使之成为新栈顶。
Pop(&S, &x):出栈(栈的删除操作),若栈S非空,则弹出栈顶元素,并用x返回。
GetTop(S, &x):读栈顶元素,若栈S非空,则用x返回栈顶元素。
DestroyStack(&S):栈销毁,并释放S占用的存储空间(“&”表示引用调用)
 

栈的顺序存储
采用顺序存储的栈称为顺序栈,它利用一组地址连续的存储单元存放自栈底到栈顶的数据元素,同时附设一个指针(top)指示当前栈顶元素的位置。
若存储栈的长度为StackSize,则栈顶位置top必须小于StackSize。当栈存在一个元素时,top等于0,因此通常把空栈的判断条件定位top等于-1。
栈的顺序存储结构可描述为:
 

若现在有一个栈,StackSize是5,则栈的普通情况、空栈、满栈的情况分别如下图所示:

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值