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
- 백준알고리즘
- 완전탐색
- react
- Algorithm
- 서버구축
- ELB
- sort
- 리액트
- java
- 스터디
- url parsing
- 백준
- mysql
- BFS
- 알고리즘
- spring
- 다익스트라 알고리즘
- 동적프로그래밍
- 라우터
- Router
- 토이프로젝트
- Spring Boot
- 정렬
- 자료구조
- AWS
- 탐욕법
- EventListener
- nodejs
- EC2
- 브루트포스
Archives
- Today
- Total
공부하는 블로그
Algorithm | 자료구조 : Stack 본문
Stack?
스택(Stack)은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형구조(LIFO - Last In First Out)로 되어있다. 자료를 넣는 행위를 푸시(Push), 넣어둔 자료를 꺼내는 행위를 팝(Pop)이라고 한다.
*LIFO : 나중에 넣은 값이 가장 먼저 나오는 것을 LIFO 구조라 한다.
스택은 프로그래밍 언어마다 라이브러리로 구현되어 있지만 직접 사용자가 연결 리스트를 이용하여 구현해낼 수도 있다.
Stack Method
· pop() : 스택에서 가장 위에 있는 데이터를 제거한다.
· push() : 스택의 가장 위에 데이터를 추가한다.
· peek() : 스택의 가장 위에 있는 항목을 반환한다.
· isEmpty() : 스택이 비어있을 때에 true를 반환한다.
Stack Code (JAVA)
import java.util.ArrayList;
import java.util.List;
public class MyStack {
public List<Object> stack = new ArrayList<Object>();
public void push(Object obj) {
stack.add(obj);
}
public Object pop() {
if(stack.size() == 0) return 'stack is empty';
return stack.remove(stack.size()-1);
}
public boolean isEmpty() {
if(stack.size() == 0) return true;
return false;
}
public Object peek() {
if(stack.size() == 0) return 'stack is empty';
return stack.get(stack.size()-1);
}
}
간단하게 자바로 구현해본 스택클래스다.
Reference
· https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D
· https://gmlwjd9405.github.io/2018/08/03/data-structure-stack.html
'알고리즘 공부' 카테고리의 다른 글
Algorithm | 자료구조 : Hash Table (0) | 2020.05.15 |
---|---|
Algorithm | 자료구조 : Queue & Deque (0) | 2020.02.24 |
Baekjoon | Q.10870 - 피보나치 수 5 (0) | 2020.01.02 |
Baekjoon | Q.1929 - 소수 구하기(에라토스테네스의 체) (0) | 2019.12.29 |
Baekjoon | Q.1978 - 소수 찾기 (0) | 2019.12.28 |
Comments