Stack
>의미
: 데이터를 순서대로 쌓는 자료구조
: 예시) 막힌 골목에 쌓이는 자동차, 프링글스 등
>사용
push : stack에 데이터를 넣는 것
pop : stack에서 데이터를 꺼내는 것, pop() 호출만 가능
>특징
- 1. FILO or LIFO(Last In First Out)
: 가장 먼저 들어간 데이터가 가장 나중에 나올 수 있다.
: 가장 늦게 들어간 데이터가 가장 먼저 나올 수 있다.
- 2. 데이터는 하나씩 넣고(push) 뺼(pop) 수 있다.
: 한꺼번에 여러개 불가!
- 3. 하나의 입출력 방향을 갖는다.
: Stack의 데이터 입출력 방향은 같다. 여러개면 Stack 자료구조 아님
: 넣은 곳으로 빼고, 뺀 곳으로 넣고.
>실사용 예시
1. 웹 페이지 뒤로가기, 앞으로 가기
2. 되돌리기(ctrl+z)
>메서드
push(): 스택에 데이터를 추가
pop(): 가장 나중에 추가된 데이터를 스택에서 삭제 후, 삭제한 데이터를 리턴
size(): 스택에 추가된 데이터의 크기를 리턴
peek(): 가장 나중에 추가된 데이터를 리턴
show(): 현재 스택에 포함되어 있는 모든 데이터를 String 타입으로 변환하여 리턴
search(): 인자로 들어온 데이터(값)의 인덱스를 반환하는 메서드. (size()-i을 반환)
clear(): 현재 스택에 포함되어 있는 모든 데이터 삭제
empty(): 현재 스택에 빈 스택인지의 여부를 boolean 값으로 반환.
>ArrayList로 Stack 구현해보기
: 깃허브
>공식 문서 뜯어보기
class Stack<E> extends Vector<E> {
public Stack() { }
}
: Vector를 상속한 클래스
: 매개변수 있는 생성자 없음.
: push, pop, peek, empty, search 빼고는 Vector의 것을 사용.
'코드스테이츠_국비교육 > [Section2]' 카테고리의 다른 글
24.01_Tree_22.09.23 (0) | 2022.09.25 |
---|---|
23.03_Queue_22.09.22 (0) | 2022.09.24 |
23.01_자료구조_22.09.22 (0) | 2022.09.23 |
22_JSON 및 재귀 문제 풀이_22.09.21 (0) | 2022.09.21 |
21_재귀 함수_22.09.20 (0) | 2022.09.20 |