栈(stack)
来源:互联网 发布:有哪些画图软件 编辑:程序博客网 时间:2024/06/05 15:48
栈(stack)是一个后进先出的线性表,只允许在栈顶插入和删除元素
栈的结构
栈的接口
- push() :入栈
- pop() : 出栈
- top() : 获取栈顶元素
- empty(): 判空
- size():栈中元素的个数
Python中的列表(list)就类似一个栈,对应的接口实现:
栈的应用–括号匹配
- 先创建一个栈,保存为匹配得左括号
- 遍历字符串
- 如果是左括号入栈
- 如果是右括号
- 此时如果栈空,右括号多于左括号
- 取栈顶元素,如果匹配则元素出栈,否则括号匹配次序错误
- 出循环后,如果栈空,则匹配正确;否则左括号多
left = {'{','[','('}right = {'}',']',')'}def match(Str): s = []#创建栈 for c in Str: #遍历字符串 if c in left: #左括号 s.append(c) elif c in right:#右括号 if not s: print('右括号多') return #直接返回 elif (c is ')'and s[-1] is '(' )or (c is ']' and s[-1] is '[') or (c is '}' and s[-1] is '{'): s.pop() continue else: print('括号次序匹配不正确') return if not s: print('括号匹配正确') else: print('左括号多')Str = input()#输入表达式match(Str)
阅读全文
0 1
- stack栈
- 栈 Stack
- STACK 栈
- 栈(stack)
- 栈 Stack
- 栈stack
- stack栈
- stack栈
- stack栈
- stack栈
- stack栈
- 栈(stack)
- stack栈
- 栈 stack
- 栈(Stack)
- 栈Stack
- stack 栈
- 栈《Stack》
- 百度地图和百度导航冲突问题
- 好的lua代码风格
- C语言实现两数的交换
- git命令
- PeerConnectionFactory分析
- 栈(stack)
- Guice provider注解
- Jmeter之Bean shell使用(二)
- 解决VMbox中软连接创建错误的问题
- 数组模拟存邻接表跑dfs 模板
- centos 6.5 源码编译安装htop2.0.0
- 示例学习
- SQL 求按日累计
- Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow)