스택(Stack)과 큐(Queue)

이경민·2023년 1월 1일
0

스택/큐

목록 보기
1/4

✅ 1. 스택 (stack)

  • 데이터를 임시 저장할 때 사용하는 자료구조

  • 데이터의 입력과 출력 순서는 후입선출(LIFO) 방식

    • LIFO: Last In First Out, 가장 나중에 넣은 데이터를 가장 먼저 꺼냄
  • push: 스택에 데이터를 넣는 작업

  • pop: 스택에서 데이터를 꺼내는 작업

  • top: 푸시하고, 팝하는 윗부분

  • bottom: 아랫부분

✅ 2. 큐 (queue)

  • 데이터를 임시 저장할 때 사용하는 자료구조

  • 데이터의 입력과 출력 순서는 선입선출(FIFO) 방식

    • FIFO: First In First Out, 가장 먼저 넣은 데이터를 가장 먼저 꺼냄
  • enqueue: 큐에 데이터를 추가하는 작업

  • dequeue: 큐에서 데이터를 꺼내는 작업

  • front: 데이터를 꺼내는 쪽 (맨 앞)

  • rear: 데이터를 넣는 쪽 (맨 끝)


✅ 3. 구현 - collections.deque

  • deque: double-ended queue, 양방향 대기열 자료구조
    • 맨 앞과 맨 끝 양쪽에서 데이터를 모두 삽입/삭제할 수 있음
    • 스택과 큐를 합친 형태
	from collections import deque
    
    d = deque()
	print(d)  # deque([])

📝 주요 함수

  • append(x): 맨 끝(오른쪽)에 x를 추가

  • appendleft(x): 맨 앞(왼쪽)에 x를 추가

  • extend(iterable): iterable에서 가져온 원소를 순서대로 맨 끝(오른쪽)에 추가

  • extendleft(iterable): iterable에서 가져온 원소를 순서대로 맨 앞(왼쪽)에 추가

  • insert(i, x): x를 i 위치에 삽입

  • pop(): 맨 끝(오른쪽)에 있는 원소 1개 삭제 후, 반환

  • popleft(x): 맨 앞(왼쪽)에 있는 원소 1개 삭제 후, 반환

  • remove(value): value의 첫 번째(왼쪽) 항목 삭제

  • clear(): 모든 원소 삭제

  • count(x): x와 같은 원소의 개수 계산

  • reverse(): 역순으로 재정렬

  • index(x[, start[, stop]]): [start~stop] 범위에서 가장 앞쪽에 있는 x의 위치 반환

  • rotate(n=1): 모든 원소를 n값만큼 오른쪽으로 밀어냄 (음수일 경우, 왼쪽)


[참고문헌]
자료구조와 함께 배우는 알고리즘 입문(파이썬편)

profile
열정 가득한 공간

0개의 댓글