자료구조
스택
Bryan Lee
2022. 4. 23. 01:10
1) 스택의 특징
- 스택은 큐와 함께 가장 많이 쓰이는 자료구조 중 하나임
- 큐가 FIFO 정책을 쓴다면, 스택은 LIFO 정책을 씀
-> 즉, 가장 마지막에 넣어진 데이터를 먼저 뽑음
2) 스택의 활용
- 컴퓨터 내부 프로세스 구조의 함수 동작 방식에 스택이 활용됨
3) 스택의 메소드
- push(): 데이터를 스택에 넣기
- pop(): 데이터를 스택에서 꺼내기
4) 스택의 장단점
장점
(1) 구조가 단순해서 구현이 쉬움
(2) 데이터 저장/읽기 속도가 빠름
단점
(1) 데이터 최대 개수를 미리 정해야 함
(2) 저장 공간의 낭비가 발생할 수 있음
5) 스택 활용하기
import java.util.Stack;
Stack<Integer> stack_int = new Stack<Integer>();
stack_int.push(1);
stack_int.push(2);
stack_int.push(3);
stack_int.pop();
stack_int.pop();
stack_int.pop();
6) 스택의 push(), pop() 기능 구현하기
(1) 스택에 데이터가 없으면 null을 리턴함
(2) Java의 Generic 타입 문법을 활용함
public class MyStack<T>{
private ArrayList<T> stack = new ArrayList<T>();
public void push(T item){
stack.add(item);
}
public T pop(){
if(stack.isEmpty()){
return null;
}
return stack.remove(stack.size()-1);
}
public boolean isEmpty(){
return stack.isEmpty();
}
public static void main(String[] args){
MyStack<Integer> ms = new MyStack<Integer>();
ms.push(1);
ms.push(2);
System.out.println(ms.pop());
ms.push(3);
System.out.println(ms.pop());
System.out.println(ms.pop());
}
}
참고
- 한 번에 끝내는 코딩테스트 369 Java편 초격차 패키지 Online편