python中的栈指的是什么-Python教程

资源魔 35 0

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

da3a3ab4a3e1d783978f0d71b0a8cae.png

就像图片所形容的,栈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使用问题

抱歉,评论功能暂时关闭!