반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- docker remove
- 코드업 1020 자바
- 프로그래머스 나누어 떨어지는 숫자 배열 자바
- 핸즈온 머신러닝
- 트리의 지름 자바
- codeup 1020 java
- 최소 스패닝 트리
- 청년 AI Big Data 아카데미 13기
- 프로그래머스 가운데 글자 가져오기 python
- 가운데 글자 가져오기 자바
- 빅분기실기
- 코드업 1020 java
- 프로그래머스 가운데 글자 가져오기 파이썬
- 최단 경로 알고리즘
- 가운데 글자 가져오기 파이썬
- 가운데 글자 가져오기 python
- 청년 Ai Big Data 아카데미
- codeup 1020 자바
- 가운데 글자 가져오기 java
- 나누어 떨어지는 숫자 배열 python
- 빅데이터분석기사
- m1 docker install
- docker 완전 삭제
- 프로그래머스 가운데 글자 가져오기 자바
- 나누어 떨어지는 숫자 배열 java
- m1 docker
- 트리의 지름 java
- docker 삭제
- 프로그래머스 나누어 떨어지는 숫자 배열 파이썬
- 최소 스패닝 트리 자바
Archives
- Today
- Total
NineTwo meet you
[자료구조] 스택 Stack 본문
반응형
스택 Stack
먼저 넣은 데이터가 가장 나중에 나오는 형태의 자료구조를 의미한다.
스택은 Last In Frist Out의 LIFO 구조이다.
이는 First In First Out의 큐 Queue와 반대된다고 생각할 수 있다.
실생활에서 간단한 예시를 들자면 프링글스를 생각할 수 있다.
과자의 맨 밑에 들어있는 과자가 가장 먼저 들어갔지만 먹는 순서는 가장 나중에 들어간 과자부터 먹을 수 있다.
스택 선언
스택를 사용하기 위해서는 Stack을 import 해야 한다.
import java.util.Stack;
// Stack<자료형> 이름 = new Stack<>();
// ex
Stack<Integer> st = new Stack<>();
push
스택에 자료를 집어넣을때 사용하는 메소드다.
st.push(1);
st.push(2);
st.push(3);
pop
스택에 자료를 뺄때 사용하는 메소드다.
앞서 말했듯이 LIFO 형인 스택의 경우 가장 나중에 삽입된 데이터부터 빠지게 된다.
int result = st.pop(); // 3
peek
마지막에 삽입한 데이터를 반환하는 메소드다.
이때 반환했다고 poll된 것이 아니라 단지 어떤 데이터인지 보여주는 역할을 한다고 생각하면 쉽다.
int last = st.peek(); // 2
empty
스택이 비어있는지 여부를 검사한다.
비어있으면 true, 아니면 false를 리턴한다.
if(st.empty()){
System.out.println("스택 비어있음");
}else{
System.out.println("스택 안비어있음");
}
// 스택 안비어있음
search
스택이 해당 요소를 가지고 있는지 파악할 때 사용한다.
top부터 인덱스를 1로 보고 해당 요소의 위치를 반환하는데 만약 없다면 -1을 리턴한다.
int ind = st.search(2); // 1
반응형
'CS > 자료구조' 카테고리의 다른 글
[자료구조] 큐 Queue (0) | 2021.07.14 |
---|---|
[자료구조] 배열 Array (0) | 2021.07.14 |
Comments