>  기사  >  백엔드 개발  >  파이썬에 스택이 있나요?

파이썬에 스택이 있나요?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-06-13 17:44:144224검색

영어사전에서 스택은 다른 물건 위에 물건을 얹는다는 뜻입니다. 이 데이터 구조에서 메모리가 할당되는 방식은 동일합니다. 이는 주방에 접시를 쌓아두는 것과 유사한 방식으로 데이터 요소를 저장합니다. 따라서 연산을 허용하는 스택 데이터의 끝 부분을 스택의 맨 위라고 부를 수 있습니다. 요소는 스택의 맨 위에 추가되거나 스택에서 간단히 제거될 수 있습니다.

파이썬에 스택이 있나요?

스택의 맨 위에서만 제거할 수 있으므로 스택에서는 순서의 마지막 요소가 먼저 나타납니다. 이 기능을 LIFO(후입선출) 기능이라고 합니다. 요소를 추가하고 제거하는 작업을 PUSH 및 POP이라고 합니다. 아래 프로그램에서는 이를 추가 및 제거 기능으로 구현합니다. 먼저 빈 목록을 선언하고 Append() 및 Pop() 메서드를 사용하여 데이터 요소를 추가 및 제거합니다.

스택에 푸시

class Stack:
    def __init__(self):
        self.stack = []
    def add(self, dataval):# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False# Use peek to look at the top of the stack
    def peek(self):     
        return self.stack[0]AStack = Stack()AStack.add("Mon")AStack.add("Tue")AStack.peek()print(AStack.peek())AStack.add("Wed")AStack.add("Thu")print(AStack.peek())Python

위 예제 코드를 실행하고 다음 결과를 얻습니다. -

Mon
MonShell

관련 권장 사항: "python 비디오 튜토리얼"

스택 제거

에서 데이터 요소만 제거할 수 있습니다. 이 기능을 수행할 수 있는 Python 프로그램인 stack 은 아래에 구현되어 있습니다. 다음 프로그램의 제거 함수는 최상위 요소를 반환합니다. 먼저 스택의 크기를 계산하여 최상위 요소를 확인한 다음 내장 pop() 메서드를 사용하여 최상위 요소를 찾습니다. 다음 코드 구현을 참조하세요

class Stack:
    def __init__(self):
        self.stack = []
    def add(self, dataval):# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False# Use list pop method to remove element
    def remove(self):
        if len(self.stack) <= 0:
            return ("No element in the Stack")
        else:
            return self.stack.pop()AStack = Stack()AStack.add("Mon")AStack.add("Tue")print(AStack.remove())AStack.add("Wed")AStack.add("Thu")print(AStack.remove())Python

위 예제 코드를 실행하면 다음과 같은 결과가 나옵니다

Tue
Thu

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

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