
栈(stack)是一个项的有序荟萃,此中增加移除了新项总发作正在同一端。这一端通常称为“顶部”。与顶部对应的端称为“底部”。

就像图片所形容的,栈s=(a1,a2,…an-1,an)。最初入栈的是an,最早出栈的也是an。以是栈合乎LIFO准则。
LIFO
LIFO,即落后先出的排序准则。它基于正在荟萃内的工夫长度做排序。较新的项接近顶部,较旧的项接近底部。栈的底部很首要,由于正在栈中接近底部的项是存储工夫最长的。比来增加的项是最早会被移除了的。
栈之以是首要是由于它能反转项的程序。拔出跟删除了程序相同。
最典型的例子就是每一个 web 阅读器都有一个前往按钮。当你阅读网页时,这些网页被搁置正在一个栈中(实际是网页的网址)。你如今查看的网页正在顶部,你第一个查看的网页正在底部。假如按‘前往’按钮,将按相同的程序阅读方才的页面。
Python完成栈
# 创立一个空的新栈。 它没有需求参数,并前往一个空栈。
class Stack:
def __init__(self):
self.items = []
# 测试栈能否为空。没有需求参数,并前往布尔值。
def isEmpty(self):
return self.items == []
# 将一个新项增加到栈的顶部。它需求 item 做参数其实不前往任何内容。
def push(self, item):
self.items.append(item)
# 从栈中删除了顶部项。它没有需求参数并前往 item 。栈被修正。
def pop(self):
return self.items.pop()
# 从栈前往顶部项,但没有会删除了它。没有需求参数。 没有修正栈。
def peek(self):
return self.items[len(self.items)-1]
# 前往栈中的 item 数目。没有需求参数,并前往一个整数。
def size(self):
return len(self.items)将十进制数转换为恣意进制数
晓得了栈的根本操作就做一个小名目来练练手。将十进制数转换为恣意进制数,其实最高也就十六进制(另有更高进制吗)。
def baseConverter(n, base):
# n是输出的十进制数字,base为要转化的进制数
digits = '0123456789ABCDEF'
#创立一个新栈
s= Stack()
# 将每一次较量争论所患上的余数增加进栈
while n> 0:
rem = n % base
s.push(rem)
n = n // base
# 将余数倒序陈列至新字符串
newString = ''
while not remstack.isEmpty():
newString = newString + digits[remstack.pop()]
return newString相干保举:《Python教程》
以上就是python中的栈指的是甚么的具体内容,更多请存眷资源魔其它相干文章!
标签: Python python教程 python编程 python使用问题
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!