教程集 www.jiaochengji.com
教程集 >  Python编程  >  Python入门  >  正文 Python能实现栈的结构吗

Python能实现栈的结构吗

发布时间:2021-12-29   编辑:jiaochengji.com
教程集为您提供Python能实现栈的结构吗等资源,欢迎您收藏本站,我们将为您提供最新的Python能实现栈的结构吗资源

栈(stack)又名堆栈,它是一种运算受限的线性表。在Python中可使用列表进行实现。

什么是栈?

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

如何实现?

在Python中使用列表来实现:

<pre class="brush:php;toolbar:false">#!/usr/bin/env python  #定义一个列表来模拟栈  stack = []  #进栈,调用列表的append()函数加到列表的末尾,strip()没有参数是去掉首尾的空格  def pushit():    stack.append(raw_input('Enter new string: ').strip())  #出栈,用到了pop()函数  def popit():    if len(stack) == 0:      print 'Cannot pop from an empty stack!'   else:      print 'Removed [', stack.pop(), ']' #编历栈  def viewstack():    print stack  #CMDs是字典的使用  CMDs = {'u': pushit, 'o': popit, 'v': viewstack}  #pr为提示字符  def showmenu():    pr = """    p(U)sh    p(O)p    (V)iew    (Q)uit      Enter choice: """   while True:      while True:        try:          #先用strip()去掉空格,再把第一个字符转换成小写的          choice = raw_input(pr).strip()[0].lower()        except (EOFError, KeyboardInterrupt, IndexError):          choice = 'q'       print '\nYou picked: [%s]' % choice        if choice not in 'uovq':          print 'Invalid option, try again'       else:          break #CMDs[]根据输入的choice从字典中对应相应的value,比如说输入u,从字典中得到value为pushit,执行pushit()进栈操作      if choice == 'q':        break     CMDs[choice]()  #判断是否是从本文件进入,而不是被调用  if __name__ == '__main__':    showmenu()</pre>


您可能感兴趣的文章:
python有栈吗
我所理解的栈01
Python能实现栈的结构吗
探索Golang协程实现——从v1.0开始
Python中的递归函数是什么
python堆和栈的区别有哪些
使用Python实现一个堆栈结构
php有虚拟机吗
python中的栈指的是什么
python全栈工程师需要学什么

[关闭]
~ ~