WIL-스택과 큐

Aiden·2022년 1월 23일
0
post-thumbnail

스택 -먼저 들어온 테이터가 나중에 나가는 구조 (선입후출 LIFO)
박스 쌓기를 생각하면 쉽다.

큐 - 먼저 들어온 데이터가 먼저 나가는 구조 (선입선출 FIFO)
음식점 대기열을 생각하면 쉽다.

파이썬에서는 스택과 큐를 따로 지원하지는 않지만 리스트가 모든 연산을 지원한다.
오히려 다른 언어들보다 간편하게 스택과 큐를 구현할수있다.

  • append(): 데이터를 스택에 넣기
  • pop(): 데이터를 스택에서 꺼내기

덱(deque)

덱(deque)의 개념
양방향 큐가 있는데 그것이 바로 데크(deque)다.

즉, 앞, 뒤 양쪽 방향에서 엘리먼트(element)를 추가하거나 제거할 수 있다.

from collections import deque

deq = deque()

# Add element to the start
deq.appendleft(10)

# Add element to the end
deq.append(0)

# Pop element from the start
deq.popleft()

# Pop element from the end
deq.pop()

deque.append(item): item을 데크의 오른쪽 끝에 삽입한다.
deque.appendleft(item): item을 데크의 왼쪽 끝에 삽입한다.
deque.pop(): 데크의 오른쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.
deque.popleft(): 데크의 왼쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.
deque.extend(array): 주어진 배열(array)을 순환하면서 데크의 오른쪽에 추가한다.
deque.extendleft(array): 주어진 배열(array)을 순환하면서 데크의 왼쪽에 추가한다.
deque.remove(item): item을 데크에서 찾아 삭제한다.
deque.rotate(num): 데크를 num만큼 회전한다(양수면 오른쪽, 음수면 왼쪽).

0개의 댓글