-
스택(stack)과 큐(queue)ALGORITM 2022. 4. 18. 09:40
스택(stack)
나중에 들어간 데이터를 먼저 빼내는 데이터 구조 (LIFO: Last In First Out)
파이썬에서는 list[]로 구현되어있다
자료구조
class stack: def __init__(self): # 스택 객체 생성 self.items = [] def push(self, item): # 스택 요소 추가 push(.append()) self.items.append(item) def pop(self): # 스택 요소 삭제 pop() return self.items.pop() def peek(self): # 스택 맨 앞 요소 리턴 return self[0] def isEmpty(self): # 스택이 비었는지 확인(비었으면 True 리턴) return not self.items
- a_list.append() - 괄호 안의 요소를 리스트 맨 뒤에 추가
- a_list.pop() - 리스트의 맨 뒤에 요소를 꺼내고 리스트에서 삭제
큐(queue)
먼저 들어간 데이터를 먼저 빼내는 데이터 구조 선입선출 (FIFO : First In First Out)
deque로 양방향에서 데이터를 추가 삭제할 수 있다
- a_ilst = deque()
- 데크 형태의 리스트. 요소는 string타입, list형태
- a_list.append()
- 뒤에 요소를 추가
- a_list.appendleft()
- 앞에 요소를 추가
- a_list.pop()
- 오른쪽에서 요소를 꺼내고 리스트에서 삭제
- a_list.popleft()
- 왼쪽에서 요소를 꺼내고 리스트에서 삭제
- a_list.extend()
- 괄호 안의 요소를 오른쪽에 추가 int는 str으로 변환 후 추가 가능. 리스트 형태의 요소는 int, str 상관없이 추가 가능
- a_list.extendleft()
- 괄호 안의 요소를 왼쪽에 추가
- a_list.insert(idx, obj)
- 해당 인덱스의 obj를 추가
- a_list.remove(obj)
- obj를 찾아서 삭제. 중복값이 있을 경우, 왼쪽 1개만 삭제
- a_list.reserve()
- 리스트 요소 좌우 반전
- a_list.clear()
- 리스트의 모든 요소 삭제
- a_list.rotate(n)
- 오른쪽으로 n칸 밀어서 맨 오른쪽값을 왼쪽에 붙이기
- a_list.rotate(-n)
- 왼쪽으로 n칸 밀어서 맨 왼쪽값을 오른쪽에 붙이기
반응형'ALGORITM' 카테고리의 다른 글
해시 테이블(Hash Table) (0) 2022.04.18 연결리스트(linked list) (0) 2022.04.18 배열(Array) (0) 2022.04.11