💡 스택 (Stack)
스택 알고리즘은 데이터를 임시 저장할 때 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입선출 ( LIFO - last in first out ) 방식이다.
스택에서 데이터를 넣는 작업을 push 라 하며, 꺼내는 작업을 pop 이라한다.
간략하게 설명하자면, '먼저 들어간 항목이 나중에 나오고, 나중에 들어간 항목이 먼저 나오는 것이다.'
💡 설명
1. 파란색, 주황색이 포함된 배열에 노란색을 넣는다.
2. 노란색이 들어가게 되면 배열에는 [ 파란색, 주황색, 노란색 ] 이 있다.
3. pop 을 시도하는 경우 나중에 들어간 노란색이 먼저 나오게 된다.
💡 숫자로 된 설명
💡 간략한 코드로 Stack 구현
1. stack 배열 생성
2. 5와 3을 push 하게 되면 [5, 3] 이 출력된다.
3. pop 을 하는 경우 뒤 늦게 push 된 3이 꺼내게된다.
💡 class 를 활용한 Stack 구현
class stack:
def __init__(self):
self.stack_list = []
def push(self, data):
self.stack_list.append(data)
def pop(self):
return self.stack_list.pop()
def isEmpty(self):
return not self.stack_list
stk = stack() # stack 객체 생성
stk_isEmpty = stk.isEmpty()
print (stk_isEmpty) # 아무것도 들어있지 않는 경우 True 출력
stk.push(3)
print (stk_isEmpty) # 값이 들어있는 경우 False 출력
stack class 를 만드는데, stack 객체 초기화 변수로는 stack_list 를 만든다.
push, pop, isEmpty 함수를 만든다.
push 함수 는 stack_list 에 값을 추가하고, pop 함수는 stack_list 값을 삭제한다.
isEmpty 함수는 값이 들어 있지 않는 경우 True 를 반환하고, 값이 들어있는 경우 False 를 반환 한다.
💡 실행 결과
stack 객체 생성 후 stk 를 통해 받는다.
아무 것도 들어있지 않는 경우 True 를 출력하고, 값이 들어 있는 경우 False 를 출력한다.
💡 추가 설명
stk.push(1) # stk의 push 함수 호출하여 파라미터로 1을 전달
stk.push(2) # stk의 push 함수 호출하여 파라미터로 2을 전달
stk.pop()
stack 은 LIFO 로 '먼저 들어간 항목이 나중에 나오고, 나중에 들어간 항목이 먼저 나오는 것이다.'
stk 에 값을 1과 2를 넣는다.
pop 함수 호출 시 나중에 들어간 항목이 먼저 나오는 것으로 2가 나오고 stack_list 에는 1만 남게된다.
[Python 자료구조] 큐 (Queue) (0) | 2022.02.06 |
---|---|
[Python 자료구조] 이진검색 코드 개선 (0) | 2022.02.06 |
[Python 자료구조] 이진검색 (0) | 2022.02.04 |
[Python 자료구조] 선형검색 (코드 개선) (0) | 2022.02.04 |
[Python 자료구조] 보초법 (0) | 2022.02.03 |