yooniiverse
개발 블로그
yooniiverse
전체 방문자
오늘
어제
  • 분류 전체보기
    • 운영체제
    • 네트워크
    • ~2023.02
      • 외부교육
      • 대외활동
      • 스터디
      • 동아리
      • TIL
      • IT지식
      • 기타
      • 트러블 슈팅
      • 프로그래밍
      • Python
      • Java
      • JS
      • DB(SQL)
      • JSP
      • Spring
      • 기술면접
      • 자바
      • 코딩테스트
      • 자료구조
      • 알고리즘
      • 백준 문제풀이
      • 인공지능
      • 머신러닝
      • 프로젝트
      • 안드로이드 앱개발
      • 웹개발
      • 웹 서비스
      • 웹퍼블리싱
      • Node.js 백엔드 개발
      • CS
      • 1일 1CS지식
      • 운영체제
      • 네트워크
      • 데이터베이스
      • 정보처리기사
      • 도서 리뷰
      • 개발 관련 도서
      • 기타 도서

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yooniiverse

개발 블로그

스택(Stack)
~2023.02/자료구조

스택(Stack)

2022. 4. 2. 19:07

0. 스택


  • 데이터를 제한적으로 접근할 수 있는 구조 (큐와 동일)
    • 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조
  • 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 (큐와 차이)
    • 큐 : FIFO 정책 (줄 서기)
    • 스택 : LIFO 정책 (책 쌓기)

 

 

1. 스택 구조


  • 스택은 LIFO(Last In, First Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따름
    • LIFO : 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책
    • FILO : 처음에 넣은 데이터를 가장 마지막에 추출하는 데이터 관리 정책
  • 대표적인 스택의 활용
    • 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
  • 주요 기능
    • push() : 데이터를 스택에 넣기
    • pop() : 데이터를 스택에서 꺼내기
    • Visulgo 사이트에서 시연해보며 이해하기 (push / pop 만 클릭해보며)

https://visualgo.net/en/list

 

Linked List (Single, Doubly), Stack, Queue, Deque - VisuAlgo

VisuAlgo is free of charge for Computer Science community on earth. If you like VisuAlgo, the only "payment" that we ask of you is for you to tell the existence of VisuAlgo to other Computer Science students/instructors that you know =) via Facebook/Twitte

visualgo.net

 

 

2. 스택 구조와 프로세스 스택


  • 스택 구조는 프로세스 실행 구조의 가장 기본
    • 함수 호출시 프로세스 실행 구조를 스택과 비교해서 이해하는 것이 필요

 

 

3. 자료 구조 스택의 장단점


  • 장점
    • 구조가 단순해서 구현이 쉽다.
    • 데이터 저장/읽기 속도가 빠르다.
  • 단점 (일반적인 스택 구현시)
    • 데이터 최대 갯수를 미리 정해야 한다.
      • 파이썬의 경우, 재귀 함수는 1000번까지만 호출이 가능함
    • 저장 공간의 낭비가 발생할 수 있음
      • 미리 최대 갯수만큼 저장 공간을 확보해야 함
스택은 단순하고 빠른 성능을 위해 사용되므로, 보통 배열 구조를 활용해서 구현하는 것이 일반적임
이 경우, 위에서 열거한 단점이 있을 수 있음

 

 

4. 파이썬 리스트 기능에서 제공하는 메서드로 스택 사용해보기


  • append(push), pop 메서드 제공

 

 

5. 프로그래밍 연습


[리스트 변수로 스택을 다루는 pop, push 기능 구현해보기 (pop, push 함수 사용하지 않고)]

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

힙(Heap)  (0) 2022.04.02
알고리즘 복잡도 표현 기법  (0) 2022.02.25
큐(Queue)  (0) 2022.01.15
해쉬(Hash)  (0) 2022.01.11
배열  (0) 2021.11.26
    '~2023.02/자료구조' 카테고리의 다른 글
    • 힙(Heap)
    • 알고리즘 복잡도 표현 기법
    • 큐(Queue)
    • 해쉬(Hash)
    yooniiverse
    yooniiverse

    티스토리툴바