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 |