栈(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使用问题
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!