小编给大家分享一下Python实现栈结构的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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

什么是栈?

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

如何实现?

在Python中使用列表来实现:

#!/usr/bin/envpython#定义一个列表来模拟栈stack=[]#进栈,调用列表的append()函数加到列表的末尾,strip()没有参数是去掉首尾的空格defpushit():stack.append(raw_input('Enternewstring:').strip())#出栈,用到了pop()函数defpopit():iflen(stack)==0:print'Cannotpopfromanemptystack!'else:print'Removed[',stack.pop(),']'#编历栈defviewstack():printstack#CMDs是字典的使用CMDs={'u':pushit,'o':popit,'v':viewstack}#pr为提示字符defshowmenu():pr="""p(U)shp(O)p(V)iew(Q)uitEnterchoice:"""whileTrue:whileTrue:try:#先用strip()去掉空格,再把第一个字符转换成小写的choice=raw_input(pr).strip()[0].lower()except(EOFError,KeyboardInterrupt,IndexError):choice='q'print'\nYoupicked:[%s]'%choiceifchoicenotin'uovq':print'Invalidoption,tryagain'else:break#CMDs[]根据输入的choice从字典中对应相应的value,比如说输入u,从字典中得到value为pushit,执行pushit()进栈操作ifchoice=='q':breakCMDs[choice]()#判断是否是从本文件进入,而不是被调用if__name__=='__main__':showmenu()

以上是Python实现栈结构的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!