>  기사  >  백엔드 개발  >  파이썬에서 스택은 무엇을 의미하나요?

파이썬에서 스택은 무엇을 의미하나요?

藏色散人
藏色散人원래의
2019-07-02 09:27:274583검색

파이썬에서 스택은 무엇을 의미하나요?

스택은 순서가 지정된 항목 모음으로, 새 항목 추가 및 제거는 항상 같은 끝에서 발생합니다. 이 끝을 종종 "상단"이라고 합니다. 상단에 해당하는 끝을 "하단"이라고 합니다.

파이썬에서 스택은 무엇을 의미하나요?

그림에 설명된 대로 s=(a1,a2,…an-1,an)을 스택합니다. 스택에 마지막으로 푸시된 것은 an이고, 스택에서 처음으로 팝된 것도 an입니다. 따라서 스택은 LIFO 원칙을 준수합니다.

LIFO

LIFO, 즉 후입선출 정렬 원칙입니다. 컬렉션 내의 기간을 기준으로 정렬됩니다. 최신 항목은 위쪽에 있고 오래된 항목은 아래쪽에 있습니다. 스택의 맨 아래에 있는 항목이 가장 오랫동안 저장되므로 스택의 맨 아래가 중요합니다. 최근에 추가된 항목이 가장 먼저 제거됩니다.

스택이 중요한 이유는 아이템의 순서를 뒤집을 수 있다는 점입니다. 삽입과 삭제는 역순입니다.

가장 일반적인 예는 모든 웹 브라우저에 뒤로 버튼이 있다는 것입니다. 웹을 탐색하면 웹 페이지가 스택(실제로는 웹 페이지의 URL)에 배치됩니다. 지금 보고 있는 페이지가 상단에 있고, 처음 본 페이지가 하단에 있습니다. '뒤로' 버튼을 누르면 이전 페이지를 역순으로 탐색하게 됩니다.

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)

십진수를 임의의 진수로 변환# 🎜🎜 #

스택의 기본 동작을 알고 나면 작은 프로젝트를 만들어 기술을 연습해 보세요. 10진수를 임의의 밑수로 변환합니다. 실제로 가장 높은 숫자는 16진수입니다(더 높은 밑수가 있습니까?).

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 튜토리얼"

위 내용은 파이썬에서 스택은 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.