1. 스택 구조
  • 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 (데이터를 제한적으로 접근할 수 있음)
  • LIFO(Last-In/First-Out) 구조 : 가장 마지막에 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
  • FILO 구조
 * 큐(Queue)와 차이 : 큐 - FIFO구조 / 스택 - LIFO구조

2. 스택 특징
  • 스택 활용 : 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
  • 장점 :
1) 구조가 단순하여 구현이 쉬움
2) 데이터 저장/읽기 속도가 빠름
  • 단점(일반적인 스택 구현 시) :
1) 데이터 최대 갯수를 미리 정해야함
2) 저장공간 낭비 발생 가능성 있음
  • 스택은 단순하고 빠른 성능을 위해 사용됨. 보통 배열 구조를 활용해서 구현하는 것이 일반적. 이 경우, 위의 단점들이 발생할 수 있음
3. 용어
  • push() : 스택에 데이터 넣기
  • pop() : 스택에서 데이터 꺼내기

4. 스택 사용
stack = [1,2,3]

# 데이터 넣기
def push(data): 
    stack.append(data)

# 맨 끝 데이터 추출
def pop(): 
    stack.pop()
    # del stack[-1] : pop() 메서드를 사용안 할 경우 del, 맨 끝 인덱스 -1 사용하기.

push(4)
print(stack) # 출력 화면 : [1, 2, 3, 4]
pop()
print(stack) # 출력 화면 : [1, 2, 3] -> pop()으로 인해 마지막에 넣은 4가 추출되었고 [1,2,3]만 남음

'자료구조' 카테고리의 다른 글

[자료구조] 큐(queue)  (0) 2023.03.16
[자료구조] 배열(Array)  (0) 2022.12.13

+ Recent posts