코드스테이츠_국비교육/[Section2]

23.02_Stack_22.09.22

생각없이 해도 생각보다 좋다. 2022. 9. 23. 23:06

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