Python-스택

영어 사전에서 스택이라는 단어는 다른 것 위에 물건을 배열하는 것을 의미합니다. 이 데이터 구조에서 메모리가 할당되는 것과 동일한 방식입니다. 여러 접시가 부엌에서 서로 위에 저장되는 것과 유사한 방식으로 데이터 요소를 저장합니다. 따라서 스택 데이터 구조는 스택의 맨 위라고 할 수있는 한쪽 끝에서의 작업을 허용합니다. 요소를 추가하거나 제거 할 수 있습니다.

스택에서는 스택의 맨 위에서 만 제거 할 수 있으므로 순서대로 마지막에 삽입 된 요소가 먼저 나옵니다. 이러한 기능을 LIFO (Last in First Out) 기능이라고합니다. 요소 추가 및 제거 작업은 다음과 같이 알려져 있습니다.PUSHPOP. 다음 프로그램에서는 추가 및 제거 기능으로 구현합니다. 빈 목록을 선언하고 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[-1]

AStack = Stack()
AStack.add("Mon")
AStack.add("Tue")
AStack.peek()
print(AStack.peek())
AStack.add("Wed")
AStack.add("Thu")
print(AStack.peek())

위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.

Tue
Thu

스택에서 POP

스택에서 최상위 데이터 요소 만 제거 할 수 있다는 것을 알고 있듯이이를 수행하는 파이썬 프로그램을 구현합니다. 다음 프로그램의 제거 함수는 최상위 요소를 반환합니다. 먼저 스택의 크기를 계산하여 최상위 요소를 확인한 다음 내장 된 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")
AStack.add("Wed")
AStack.add("Thu")
print(AStack.remove())
print(AStack.remove())

위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.

Thu
Wed