Computer/자료구조

스택_Stack

에린_1 2024. 1. 15. 10:16
728x90

스택(Stack)

스택(stack)은 데이터를 임시 저장할 때 쓰는 자료구조이다.

후입선출(LIFO:Last In First Out) 방식이다.

  • 가장 최근에 들어온 데이터가 가장 먼저 나간다.

스택에 데이터를 넣는 작업을 Push라고 하고 반대로 데이터를 꺼내는 작업을 Pop이라고 한다.

스택배열(stk) - list형 배열

스택크기(capacity) - 스택의 최대 크기를 나타내는 int형 정수

스택포인터(ptr) - 스택에 쌓여있는 데이터의 개수를 나타내는 정수 값

스택의 구조&사용

  • 스택은 자료의 출력 순서가 입력 순서의 역순으로 이루어질 때 요긴하게 사용하는 자료구조이다.
  • 문서 편집기에서 undo(되돌리기) 같은 경우 이 스택 자료구조를 사용한다.
  • 시스템 스택 함수호출
    • 시스템 스택(system stack) - 운영체제가 사용하는 스택
    • 복귀주소 기억 - 함수의 실행이 끝나면 자신을 호출한 함수로 되돌아가야한다. 이 때 스택은 복귀할 주소를 기억하는데 사용한다. 함수는 호출된 역순으로 되돌아가야 하기 때문이다.
    • 활성레코드(activation record) - 시스템 스택에는 함수가 호출될 때마다 활성레코드가 만들어지고, 이곳에 복귀 주소가 저장된다. 저장되는 정보는 아래와 같다.
      • 복귀 주소
      • 프로그램 카운터
      • 매개변수
      • 함수 안에서 선언된 지역변

예외 처리 클래스

  • empty - pop() 또는 peek() 함수를 호출할 때 스택이 비어있는 경우 발생
  • full - push() 시 스택이 가득 차있는 경우 발생

함수

  • push() - 데이터 푸시
  • pop() - 데이터 팝
  • clear() - 모든 데이터 삭제
  • find() - 데이터 검색
  • count() - 데이터 개수 세기
  • peek() - 스택의 꼭대기 데이터를 들여다보기
  • dump() - 모든 데이터 출력
  • contains() - 데이터가 포함되어 있는지 확인
728x90

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

비트리_B-Tree  (0) 2024.01.19
그래프_Graph  (0) 2024.01.19
연결리스트_LinkedList  (0) 2024.01.15
리스트_List  (1) 2024.01.15
큐_Queue  (1) 2024.01.15