[자료구조] 스택

나고수·2021년 10월 21일
0

참고 - 패스트캠퍼스 알고리즘 / 기술면접 완전 정복 올인원 패키지 Online

스택

  • LIFO (가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조)
  • 활용 : 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
  • push() : 데이터를 스택에 넣기
  • pop() : 데이터를 스택에서 꺼내기
  • 장점
    구조가 단순해서 구현이 쉽다
    데이터 저장/읽기 속도가 빠르다
  • 단점
    데이터 최대 갯수를 미리 지정해야한다
    (파이썬의 경우 재귀함수는 최대 1000번까지 호출가능)
    저장 공간의 낭비가 일어 날 수 있음

재귀함수로 알아보는 스택구조

def recursive(data):
    if data < 0:
        print ("ended")
    else:
        print(data)
        recursive(data - 1)
        print("returned", data)     

파이썬 리스트 기능에서 제공하는 메서드로 스택 사용해보기 - append, pop

data_stack = list()
data_stack.append(1)
data_stack.append(2) //[1,2]
data_stack.pop() //[2]

리스트로 pop,push 기능 구현해보기

list_stack = list()
def push(data):
    list_stack.append(data)
def pop():
    #last_index = len(list_stack)-1 (==data[-1]) 
    last_data = list_stack[-1] #마지막 데이터
    del list_stack[-1] #마지막 데이터 지우고
    return last_data #마지막 데이터 리턴     
profile
되고싶다

0개의 댓글