栈的的链表实现

栈的链表实现

栈的链式实现可采用与改进的线性表一样有两个指针。分别指向栈底 头节点base和栈顶top节点。保留栈内元素个数变量length。使用常规链接 方法建立的链表,在压栈操作时是O(1)速度,但是弹栈操作要 找到top的前驱节点,所以速度是O(n),为了加快弹栈速度可以采用,下图 右边所示存储方案,可以把链表反向链接,这样就可以提高弹栈的速度 了,并且其他性能不变。

栈应用实例

进制转换 进制转换是计算机中常用的一种操作,如果将10进制数转换为N进制 的数(保证N小于10)我们常采用除N取余法,通过该方法计算时将第一步 获得的余数和最后一步得到的余数按序列取反。可以将余数存入栈中,遍 历即可得到转换之后的进制。

匹配思想:从左至右扫描一个字符串(或表达式),则每个右括号将与最 近遇到的那个左括号相匹配。则可以在从左至右扫描过程中把所遇到的左 括号存放到堆栈中。每当遇到一个右括号时,就将它与栈顶的左括号(如果 存在)相匹配,同时从栈顶删除该左括号。 算法思想:设置一个栈,当读到 左括号时,左括号进栈。当读到右括号时,则从栈中弹出一个元素,与读 到的左括号进行匹配,若匹配成功,继续读入;否则匹配失败,返回 FLASE。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值