>  기사  >  백엔드 개발  >  파이썬 스택은 무엇을 의미합니까?

파이썬 스택은 무엇을 의미합니까?

藏色散人
藏色散人원래의
2019-06-24 11:07:547837검색

파이썬 스택은 무엇을 의미합니까?

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

스택은 특별한 종류의 목록입니다. 스택의 요소는 스택의 맨 위라고 불리는 목록의 한쪽 끝을 통해서만 액세스할 수 있습니다. 스택은 후입선출(LIFO, last-in-first-out) 데이터 구조라고 합니다.

스택은 후입선출 특성을 가지므로 스택의 맨 위에 있지 않은 요소에는 액세스할 수 없습니다. 스택의 맨 아래에 있는 요소를 가져오려면 먼저 위의 요소를 제거해야 합니다.

스택의 두 가지 주요 작업은 요소를 스택에 밀어넣는 것과 스택에서 요소를 꺼내는 것입니다. push() 메서드를 사용하여 스택에 푸시하고, pop()을 사용하여 스택에서 튀어나옵니다.

일반적으로 사용되는 또 다른 작업은 스택 위에 있는 요소를 미리 보는 것입니다. pop() 메서드는 스택 맨 위에 있는 요소에 액세스할 수 있지만 이 메서드를 호출한 후에는 스택 맨 위에 있는 요소도 스택에서 영구적으로 삭제됩니다. peek() 메서드는 스택의 최상위 요소만 삭제하지 않고 반환합니다.

스택의 최상위 요소 위치를 기록하고 새 요소가 추가될 수 있는 위치를 표시하기 위해 요소가 스택에 푸시되면 변수가 증가합니다. 스택에서 팝되면 변수가 감소합니다.

push(), pop() 및 peek()는 스택의 세 가지 주요 메서드이지만 스택에는 다른 메서드와 속성이 있습니다.

Stack 일반적인 작업:

Stack()    建立一个空的栈对象
push()     把一个元素添加到栈的最顶层
pop()      删除栈最顶层的元素,并返回这个元素
peek()     返回最顶层的元素,并不删除它
isEmpty()  判断栈是否为空
size()     返回栈中元素的个数

간단한 사례 및 작업 결과:

여기서 Python의 목록 개체를 사용하여 스택 구현을 시뮬레이션합니다.

class Stack: 
    """模拟栈""" 
    def __init__(self): 
        self.items = [] 

    def isEmpty(self): 
        return len(self.items)==0  

    def push(self, item): 
        self.items.append(item) 

    def pop(self): 
        return self.items.pop()  

    def peek(self): 
        if not self.isEmpty(): 
            return self.items[len(self.items)-1] 

    def size(self): 
        return len(self.items)

스택 개체를 만들고 작업 메서드를 추가합니다.

s=Stack() 
print(s.isEmpty()) 
s.push(4) 
s.push('dog') 
print(s.peek()) 
s.push(True) 
print(s.size()) 
print(s.isEmpty()) 
s.push(8.4) 
print(s.pop()) 
print(s.pop()) 
print(s.size())

관련 추천: "Python Tutorial"

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

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