줘이리의 인생적기

자료구조 - 스택 stack 본문

공부/자료구조&알고리즘

자료구조 - 스택 stack

줘이리 2022. 1. 26. 23:00
728x90

자 큐(queue) 다음으로 알아볼 자료구조는 스택(stack)이다!

 

스택은 큐와 동일하게 한쪽 끝에서만 자료를 넣거나 꺼낼 수 있는 자료구조이다.

하지만 큐와 다른점은 나중에 넣은 데이터를 가장 먼저 꺼낼 수 있는 자료구조이다

이러한 데이터 관리 정책을 LIFO(Last In, First Out)이라고 한다

 

스택은 보통 컴퓨터의 프로세스 구조의 함수 동작방식에서 자주 사용된다고 한다

이 자료구조의 장점은 단순해서 구현이 쉽다는 점과 저장과 읽기 속도가 매우 빠르다.

단점은 데이터 최대 개수를 미리 정해야 한다는 점이며, 저장공간의 낭비가 발생할 수 있다는 점이다

 

push()와 pop()을 주요 기능으로 가지고 있다는 것 까지 기억하고 실습을 해보도록 하겠다

 

먼저 파이썬의 리스트 기능으로 스택을 사용하는 코드이다

stack_example = list()

stack_example.append(1)
stack_example.append(2)

print(stack_example)
# [1, 2]

stack_example.pop()
print(stack_example)
# [2]

append와 pop을 이용하여 스택 정책을 그대로 사용할 수 있다

 

다음은 앞서 언급했던 주요 기능인 push와 pop을 리스트로 스택을 다루는 함수를 구현해보겠다

stack_example = list()

def push(data):
    stack_example.append(data)
    
def pop():
    data = stack_example[-1]
    del stack_example[-1]
    return data

이렇게 구현을 하여 사용할 수 있다

 

 

'공부 > 자료구조&알고리즘' 카테고리의 다른 글

자료구조 - 큐 queue  (0) 2022.01.14
자료구조 - 배열[배][열]  (0) 2022.01.10
자료구조!? 알고리즘??!!  (0) 2022.01.07