스택: 데이터를 차곡차곡 쌓기

2021. 11. 29. 11:32·여러가지/알고리즘 & 자료구조

들어가기 앞서

스택과 큐는 쓰임새가 많아요. OS 내부의 많은 시스템이 스택과 큐를 기반으로 하며 그래프와 트리순회도 결국에는 스택과 큐로 하게 되요. 깊이 우선 탐색은 스택을 이용하는 순회이며, 너비 우선 탐색은 큐를 기반으로 합니다. 

 

스택

마지막에 들어온 데이터가 가장 먼저 나가게 되요. 

LIFO(Last In First Out)

 

ADT

Stack

- Object

  : LIFO 객체

- Operation

  1. empty() -> Boolean
    : 스택이 비어 있으면 True or False
  2. push(data)
    : data를 스택의 맨 위에 삽입
  3. pop() -> element
    : 스택의 맨 위에 있는 데이터를 삭제하며 반환
  4. peek() -> element
    : 스택의 맨위에 이쓴 데이터를 반환만 함

 

동적 배열을 이요하여 스택 구현

 

class Stack:

    def __init__(self):
        self.container = list() # 내부표현(representation): 실제로 데이터를 담을 객체는 동적 배열

    def empty(self):
        if not self.container:
            return True

    def push(self, data):
        self.container.append(data) # 맨 마지막 요소가 top 동적 배열의 맨 마지막 요소를 축라하는 것은

    def pop(self):
        if self.empty():
            return None
        return self.container.pop()

    def peek(self):
        if self.empty():
            return None
        return self.container[-1]
    
s = Stack()
s.push(1)
s.push(2)
s.push(3)
s.push(4)
s.push(5)
   
while not s.empty():
    print(s.pop(), end= ' ')

 

 > 5 4 3 2 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

저작자표시 (새창열림)

'여러가지 > 알고리즘 & 자료구조' 카테고리의 다른 글

[백준] 상수 - 2908번  (0) 2024.05.30
[백준] 할리갈리 - 21760번  (0) 2024.05.30
[백준] 단어의 개수 - 1152번  (0) 2024.05.30
🛩동적 배열이란?  (0) 2021.11.29
Differences between Stack and Heap  (0) 2021.11.29
'여러가지/알고리즘 & 자료구조' 카테고리의 다른 글
  • [백준] 할리갈리 - 21760번
  • [백준] 단어의 개수 - 1152번
  • 🛩동적 배열이란?
  • Differences between Stack and Heap
hyeseong-dev
hyeseong-dev
안녕하세요. 백엔드 개발자 이혜성입니다.
  • hyeseong-dev
    어제 오늘 그리고 내일
    hyeseong-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (283)
      • 여러가지 (108)
        • 알고리즘 & 자료구조 (73)
        • 오류 (4)
        • 이것저것 (29)
        • 일기 (1)
      • 프레임워크 (39)
        • 자바 스프링 (39)
        • React Native (0)
      • 프로그래밍 언어 (39)
        • 파이썬 (31)
        • 자바 (3)
        • 스프링부트 (5)
      • 컴퓨터 구조와 운영체제 (3)
      • DB (17)
        • SQL (0)
        • Redis (17)
      • 클라우드 컴퓨팅 (2)
        • 도커 (2)
        • AWS (0)
      • 스케쥴 (65)
        • 세미나 (0)
        • 수료 (0)
        • 스터디 (24)
        • 시험 (41)
      • 트러블슈팅 (1)
      • 자격증 (0)
        • 정보처리기사 (0)
      • 재태크 (0)
        • 암호화폐 (0)
        • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    reactor
    파이썬
    DP
    AWS
    ecs
    Spring Boot
    celery
    Docker-compose
    FastAPI
    완전탐색
    Python
    프로그래머스
    docker
    그리디
    OOP
    시험
    WebFlux
    spring
    Spring WebFlux
    java
    자바
    백준
    Redis
    #개발자포트폴리오 #개발자이력서 #개발자취업 #개발자취준 #코딩테스트 #항해99 #취리코 #취업리부트코스
    취업리부트
    항해99
    SAA
    EC2
    RDS
    mybatis
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hyeseong-dev
스택: 데이터를 차곡차곡 쌓기
상단으로

티스토리툴바