数据结构(C语言版)——3、栈

(1)栈的定义

  • 栈也是一种线性表,其特殊性在于栈的基本操作是线性表操作的子集,即栈是操作受限的线性表。
    栈(stack)是限定仅在表尾进行插入或删除操作的线性表。其中,对栈而言,表尾端称为栈顶(top),表头端称为栈底(bottom)。不含元素的空表称为空栈。
  • 假设栈 S = ( a 1 , a 2 , a 3 . . . , a n ) S = (a_1,a_2,a_3...,a_n) S=a1a2a3...an,且元素按照 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an 次序进栈,则称 a 1 a_1 a1 为栈底元素, a n a_n an 为栈顶元素。
  • 其中,退栈的第一个元素为栈顶元素 a n a_n an。即栈的修改是按后进先出的原则进行的,因此栈又称为后进先出(last in first out)的线性表(简称LIFO结构)。


(2)栈的分类与实现

  • 顺序栈:即栈的顺序存储结构表示,是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针 top 指示栈顶元素在顺序栈中的位置。
  • 链式栈:即栈的链式存储结构表示,结构类似于单链表结构。

具体实现如下链接。

(3)栈的应用

  • 数制转换
  • 括号匹配的检验
  • 行编辑程序
  • 迷宫求解
  • 表达式求值

文章参考书籍《数据结构:C语言版/严蔚敏,吴伟民编著.》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值