Python栈的实现方法示例【列表、单链表】
作者:授我以驴 发布时间:2023-07-20 15:51:42
标签:Python,栈,列表,单链表
本文实例讲述了Python栈的实现方法。分享给大家供大家参考,具体如下:
Python实现栈
栈的数组实现:利用python列表方法
代码如下:
# 列表实现栈,利用python列表方法
class listStack(object):
def __init__(self):
self.items = []
def is_empty(self):
return self.items == 0
def size(self):
return len(self.items)
def top(self):
return self.items[len(self.items)-1]
def push(self, value):
return self.items.append(value)
def pop(self):
return self.items.pop()
if __name__ =="__main__":
stack = listStack()
stack.push("welcome")
stack.push("www")
stack.push("aspxhome")
stack.push("net")
print "栈的长度:", stack.size()
print "\n".join(['%s:%s' % item for item in stack.__dict__.items()]) #打印栈stack所有元素
print "出栈:",stack.pop()
print "出栈:",stack.pop()
print "出栈:",stack.pop()
运行结果:
栈的长度: 4
items:['welcome', 'www', 'aspxhome', 'net']
出栈: net
出栈: aspxhome
出栈: www
栈的链表实现:
栈的链表实现中,压栈(push)类似于在单链表中表头添加节点;出栈(pop)类似于链表中表头删除节点并返回对应节点值;栈顶元素(top)就是获取链表中的第一个元素
链表节点的定义直接嵌套在链表栈类中
代码如下:
# 链表实现栈
class linkedStack(object):
class Node(object):
def __init__(self, value=None, next=None):
self.value = value
self.next = next
def __init__(self):
self.top = None
self.length = 0
def is_empty(self):
return self.length == 0
def size(self):
return self.length
# 获取栈顶元素
def get(self):
if self.is_empty():
raise Exception("Stack is empty!")
return self.top.value
# 压栈
def push(self, value):
node = self.Node(value)
old_top = self.top
self.top = node
node.next = old_top
self.length += 1
# 出栈
def pop(self):
if self.length == 0:
raise Exception("Stack is empty!")
item = self.top.value
curnode = self.top.next
self.top.next = self.top
self.top = curnode
self.length -= 1
return item
if __name__ =="__main__":
stack = linkedStack()
stack.push("welcome")
stack.push("www")
stack.push("aspxhome")
stack.push("net")
print "栈的长度:", stack.size()
print "出栈:",stack.pop()
print "出栈:",stack.pop()
print "出栈:",stack.pop()
print "出栈:",stack.pop()
运行结果:
栈的长度: 4
出栈: net
出栈: aspxhome
出栈: www
出栈: welcome
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/one_Salted_FishGG/article/details/99878420
0
投稿
猜你喜欢
- 主要利用了XMLHTTP的一些方法和属性来获取服务器的信息。 以下是全部源代码: &
- $server->connections//server−>connections遍历所有websocket连接用户的fd,给所
- 这个技巧将教你如何用css做出漂亮的文本按钮,有活力的按钮将节省你很多制作图片的时间,也能让你一天的工作中成为一个快乐的人,让我们一起看看效
- 本节讲述单选框/下拉菜单/添加文件,综合css,html和JavaScript实现的,具体详情如下所示:单选框:实现的功能是:(类似平时的性
- 论坛里面有不少人在使用Javascript编写Asp,经常有人在论坛提问,为什么Asp对象在对比指定值时返回结果不对?现在在这里给大家写点关
- 人们对于那些抄袭模仿的网站有诸多抱怨,但在这篇文章中,却没有冷嘲热讽的意思。但正如他们所说,“模仿是最为忠诚的奉承形式”。“如果你确实需要借
- ORA-01578:Oracle data block corrupted(file # num,block # num)产生原
- <%@ language=vbscript codepage=65001%> <
- folder.htm<html><head><title>闪亮日子之在线创建文件夹</title&
- asp时间加减运算 和转换问题 a=2007-07-24 2:23:15 b=2005-06-25 2:23:15 问题1 如何将a转换成2
- 研究了几天Adodb.stream和XMLHTTP的应用,找了不少很有趣的教程,下面的代码是将一个远程的页面,图片地址保存到本地的实例。将代
- 背景近期看到一篇文章,真的感叹作者的洞察力,在开发时有可能就会犯这样的错误,所以一定要多学习,多实践。其问题就是你在提交事务时,如果中间有其
- 上次还是CSDN里的朋友回答的,我复制了下来。原文如下 =========================== 利用统计文章字数,然后达到一
- 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。请回想一下在硬盘上是如何查找文件的。您肯
- 下面代码写的是js验证检查输入的字符是否是全角的函数:效果演示:<script> function i
- 在浏览器 IE6 、IE7、Firefox2+、Firefpx3+、Opera9.6+、Safari3.1+中测试以下代码:<!DOC
- 作为设计师,我们都知道,一个极简的设计可以实现漂亮的效果。然而,很多设计师在实现上有些麻烦:要么是没有时间让使用如此少的元素制作的页面看起来
- 现在电子商务网站的设计,正面临着一系列的挑战,其中最主要的挑战是:我们尝试建立一种用户体验,来提高用户在线购物的可能性。为了对抗网上激烈的竞
- 在WEB2.0 网页充斥的年代,身边无时无刻都听到这样的声音:“拒绝海报式设计,要做有用的设计,要简洁,要清爽,要大气”产品经理
- 万众瞩目的 Firefox 3 从昨天开始可以下载了,用“铺天盖地”四个字来形容她的宣传一点都不为过。大多数的广告还是她的fans自发进行的