Stack
선형 자료구조의 일종으로 Last In First Out (LIFO). 즉, 나중에 들어간 원소가 먼저 나온다. 이것은 Stack 의 가장 큰 특징이다. 차곡차곡 쌓이는 구조로 먼저 Stack 에 들어가게 된 원소는 맨 바닥에 깔리게 된다. 그렇기 때문에 늦게 들어간 녀석들은 그 위에 쌓이게 되고 호출 시 가장 위에 있는 녀석이 호출되는 구조이다.
class stack:
def __init__(self):
self.items=[]
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def isEmpty(self):
return not self.items
stk = stack() # stack 객체 생성
print(stk) # stack object 생성 확인
print(stk.isEmpty()) # 처음에는 아무것도 들어있지 않으므로 True 출력
stk.push(1) # stk 에 1을 넣음
stk.push(2) # stk 에 2를 넣음
print(stk.pop()) # stk 에 2가 꺼내지면서 출력 됨
print(stk.pop()) # stk 에 1가 꺼내지면서 출력 됨
print(stk.isEmpty()) # 객체에 아무것도 들어있지 않으므로 True 출력
Queue
선형 자료구조의 일종으로 First In First Out (FIFO). 즉, 먼저 들어간 놈이 먼저 나온다. Stack 과는 반대로 먼저 들어간 놈이 맨 앞에서 대기하고 있다가 먼저 나오게 되는 구조이다. 참고로 Java Collection 에서 Queue 는 인터페이스이다. 이를 구현하고 있는 Priority queue등을 사용할 수 있다.
'programming language > Algorithm' 카테고리의 다른 글
[프로그래머스 Level1] 실패율 (0) | 2021.07.22 |
---|---|
[프로그래머스 Level1] 다트게임 (0) | 2021.07.22 |
[카카오 신입 공채 1차 코딩 테스트 문제] 비밀지도 (0) | 2021.07.21 |
[프로그래머스 Level2] 프렌즈4블록 (0) | 2021.07.21 |
Linked List (0) | 2021.01.24 |