python一道关于堆栈的题
来源:互联网 发布:移动宽带网络参数设置 编辑:程序博客网 时间:2024/06/08 09:27
题目
利用列表来模拟堆栈。什么是堆栈?堆栈是一种执行”后进先出”算法的数据结构。在这里利用列表来模拟堆栈。
def push(char1, L): L.insert(0, char1) print(L)def pop(y, L): if len(L) == 0: print('Cannot pop from an empty list!') else: for i in range(int(y)): delete = L.pop(i-i) print(delete)L = []char = input('请输入要测试的字符串: ')for i in range(len(char)): char1 = char[i] push(char1, L)for i, album in enumerate(L): print(i, album)y = input('请输入想删除的字母的个数: ')pop(y, L)print('经过删除后的列表为: ', L)
在这里需要注意几点。首先是在插入时利用了L.insert(0, char1),为什么要这样用。我们知道堆栈是”后进先出”即”先进后出”因此最先出现的字母我们要把它放到后面,对于新来的字母我们利用L.insert(0, char1)把它放到列表的最前面。其次,在删除元素时要注意元素的下标,因为我们要删除列表中最前面的字母即下标为0的字母。因此我们在删除中要用delete= L.pop(i-i)在这里的循环中的i只能用来控制次数,不能当做下标!为什么?因为i开始等于0所以说我们第一次删除的时列表中最前面的元素,单进行第二次循环时i=1,此时删除的并不是最前面的元素而是最前面元素的后一个元素。因此要用i-i控制下。
请输入要测试的字符串: abcd['a']['b', 'a']['c', 'b', 'a']['d', 'c', 'b', 'a']0 d1 c2 b3 a请输入想删除的字母的个数: 4dcba经过删除后的列表为: []请输入要测试的字符串: abcd['a']['b', 'a']['c', 'b', 'a']['d', 'c', 'b', 'a']0 d1 c2 b3 a请输入想删除的字母的个数: 2dc经过删除后的列表为: ['b', 'a']
阅读全文
0 0
- python一道关于堆栈的题
- python一道关于标识符检查的题
- python一道关于字典的题
- python一道关于编写计算器的题
- python一道关于文件操作的题
- python一道关于map()的题
- python关于石头剪刀布的一道题
- python一道关于随机数的练习题
- python一道关于异常处理的问题
- 一道简单的Python题
- 关于数据库的一道题??
- 一道关于信号的题
- 关于继承的一道题
- 关于 static 的一道题
- 关于一道题的思考
- 关于C++的一道题
- 关于jvm的一道题
- 一道关于信号的题
- [bzoj2330][scoi2011]
- java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
- 数据结构与算法Java版——九大基本排序算法(2)
- Editor编程 玩转MenuItem(快捷键,校验器,分组,菜单路径)
- arraylist(增删改查)
- python一道关于堆栈的题
- Web前端基础知识
- hadoop---基础学习1
- 何为移动广告
- 20170710
- 线性表之链式存储
- aspectj
- 2017.7.10 && Numpy
- slf4j和log4j、logback的关系