Python-스택
영어 사전에서 스택이라는 단어는 다른 것 위에 물건을 배열하는 것을 의미합니다. 이 데이터 구조에서 메모리가 할당되는 것과 동일한 방식입니다. 여러 접시가 부엌에서 서로 위에 저장되는 것과 유사한 방식으로 데이터 요소를 저장합니다. 따라서 스택 데이터 구조는 스택의 맨 위라고 할 수있는 한쪽 끝에서의 작업을 허용합니다. 요소를 추가하거나 제거 할 수 있습니다.
스택에서는 스택의 맨 위에서 만 제거 할 수 있으므로 순서대로 마지막에 삽입 된 요소가 먼저 나옵니다. 이러한 기능을 LIFO (Last in First Out) 기능이라고합니다. 요소 추가 및 제거 작업은 다음과 같이 알려져 있습니다.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[-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