博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python_列表结构模拟栈和队列
阅读量:5084 次
发布时间:2019-06-13

本文共 1517 字,大约阅读时间需要 5 分钟。

1. 栈的存储方式是先进后出,具有push和pop的行为。队列的存储方式是先进先出(FIFO)

2. 实现主要包括连续push、pop栈顶和展示栈内元素三个方法。

3. 连续push采用raw_input,以#作为结束标志;展示元素以倒序依次展示的方式,用到了很重要的copy模块(import copy)

python中,alist =[1],b =a,a和b都是对[1]这个对象的引用,b.append操作同样修改了a,为了得到一个倒序栈的输出但保留原栈需要用copy,即复制对象而不是引用);

弹出栈顶直接采用列表的pop函数不带参数的用法。

4. 根据命令不同调用不同的实现函数,参考了《python核心编程》的示例,CMDs[choice](),其中CMDs是一个字典,不同的key对应不同的函数名。

5. 队列的模拟基本和栈一样,只是在弹出操作时,栈是弹出最后输入的一个元素,直接pop()调用即可,队列则是弹出第一个元素(遵循先进先出)调用pop(0)

代码实现:

# global variablesstack = []def pushit():    '允许连续push多个元素进栈'    print '请输入元素,以#结束'    element = raw_input()    while  element is not '#':        stack.append(element)        element = raw_input()def popit():    if len(stack)==0:        print '栈为空!'        return    else:        delelement = stack.pop()        print 'Removed \'%s\' ' % delelement        print 'Now stack is:'        viewstack()def viewstack():#    stackview = stack    stackview = copy.copy(stack)    stackview.reverse()    for i in stackview:        print iCMDs = {'u':pushit, 'o':popit, 'v':viewstack}# function definitiondef simulateStack():    while True:        ill = """        pUsh        pOp        View        Quit        Enter your choice:"""        while True:            choice = raw_input(ill).strip().lower()            if choice not in 'uovq':                print 'Invalid choice, please try again!'            else:                break        print 'you chose %s ' % choice        if choice =='q':            break        CMDs[choice]()

 

转载于:https://www.cnblogs.com/AHappyBird/p/9401700.html

你可能感兴趣的文章
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>
构建之法阅读笔记02
查看>>
添加按钮
查看>>
移动端页面开发适配 rem布局原理
查看>>
Ajax中文乱码问题解决方法(服务器端用servlet)
查看>>
会计电算化常考题目一
查看>>
阿里云服务器CentOS6.9安装Mysql
查看>>
剑指offer系列6:数值的整数次方
查看>>
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
bcb ole拖拽功能的实现
查看>>
生活大爆炸之何为光速
查看>>