ABOUT ME

chanho Yoon
chyoon0512@gmail.com


깃허브


블로그 이사!

이 블로그로 이사했어요!!


Today
-
Yesterday
-
Total
-
  • Stack(스택) - python3
    Programming/자료구조 2020. 2. 26. 22:56
    반응형

    스택이란

    • 데이터를 제한적으로 접근할 수 있는 구조
    • 한 쪽에서만 데이터를 put(넣기), pop(빼기)할 수 있는 구조
    • 가장 마지막에 들어온 데이터가 가장 먼저 나가는 구조

    스택구조

    • 스택은 LIFO(Last-In, First-out) , FILO(First-In, Last-out) 데이터 관리 방식을 이용
      • LIFO : 마지막에 넣은 데이터가 가장 먼저 나감
      • FILO : 처음 넣은 데이턱 가장 나중에 나감
    • 주요기능
      • push() : 데이터를 스택에 삽입
      • pop() : 데이터를 스택에서 추출

    https://ja.m.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Lifo_stack.png

    스택의 장점과 단점

    • 장점
      • 구조가 단순, 구현이 쉽다.
      • 데이터의 저장/읽기 속도가 빠름
    • 단점
      • 데이터 크기를 미리 지정해야한다.
      • 위와 같은 이유로 인해 저장공간이 낭비가 발생할 수 있다.

     

    파이썬 pop() 함수를 사용해서 스택 

     

     

    파이썬 함수 사용하지 않고 직접 스택 구현

    dataList = list()
    
    def push(data):
        dataList.append(data)
        
        
    def pop():
        if len(dataList) > 0:
            del dataList[-1] //파이썬에서 -1 하면 맨 끝 인덱스
        else:
            print("underflow")
    
    while(1):
        select = input("1. push  , 2. pop  : ")
        
        if select == "1":
            data = input("input data : ")
            push(data)
            print(f"stack : {dataList}")
        elif select == "2":
            pop()
            print(dataList)
        else:
            break
            

     

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

    이중 연결 리스트 - python3  (0) 2020.03.05
    단일 연결 리스트 - python3  (0) 2020.02.27
    Queue(큐) - python3  (0) 2020.02.25
    리스트 (List) 파이썬 배열  (0) 2020.02.24

    댓글

Designed by Tistory.