본문 바로가기
공부 정리/알고리즘

[알고리즘] 스택 stack

by 경적필패. 2021. 3. 13.
반응형

스택이란?

자료구조 중 하나로, 알고리즘 문제에서 종종 쓸 일이 있었습니다.

Stack 모형

어떤 보관 상자가 있는데, 이 상자에 차곡차곡 데이터를 저장할 수 있습니다.

데이터는 보관하는 순으로 저장되며, 그림에서 보다시피 가장 나중에 넣은 데이터가 가장 윗부분에 위치하게 됩니다.

따라서 데이터를 꺼낼때도 가장 윗부분부터 꺼내야 합니다.

이런 구조를 LIFO(LAST IN FIRST OUT)이라 합니다.

 

저는 자바로 스택을 구현해보았습니다.


 

STACK 선언

Stack<Integer> stack = new Stack<>();
Stack<double> stack = new Stack<>();
Stack<String> stack = new Stack<>();

스택 보관함에 자료 추가하는 법

stack.push(3); //3을추가함

스택에서 값 삭제

stack.pop(); //stack 최상단 값 제거

스택에서 값 출력

System.out.println(stack.peek());

스택에서 전체 값 제거

stack.clear();

 

제가 스택을 테스트 해본 코드

package javaBaekjoon;
import java.io.*;
import java.math.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO Auto-generated method stub
		
		Stack<Integer> stack = new Stack<>();
		stack.push(3);
		stack.push(5);
		
		int size = stack.size();
		
		for(int i=0; i<size; i++) {
			System.out.println(stack.peek());
			stack.pop();
		}
		if(stack.empty()) {
			System.out.println("stakc empty");
		}
		else {
			System.out.println("stakc not empty");
		}
		
	}
}
반응형

댓글