Stack & Queue

박우현 (Joshua)·2023년 7월 27일
0

Stack

Stack은 데이터를 쌓아 올리는 구조이다. Stack의 가장 큰 특징은 가장 나중에 들어간것이 먼저 나오는 후입선출 (Last In First Out) 형식인 것이다. 또한, 자바 컬랙션 List Interface의 한 종류이다.

Stack 기본 메서드

Stack<Integer> stack = new Stack(); //선언
stack.push(1); //stack에 값 1 추가
stack.push(2); //stack에 값 2 추가
stack.peek(); //stack의 가장 상단의 값 반환
stack.size(); //stack의 크기 반환
stack.pop();  //stack의 값 2 삭제
stack.empty();     // stack이 비어있는지 check (비어있다면 true 반환)
stack.contains(1); // stack에 1이 있는지 check (있다면 true 반환)

Queue

Queue는 줄을 지어 순서대로 처리하는 구조이다. Queue의 가장 큰 특징은 먼저 들어온 데이터가 가장 먼저 나가는 구조 선입선출 (First In First Out) 형식인 것이다. 또한, 자바 컬랙션에서 Collection Interface를 상속받은 한 Interface이다.

Stack 기본 메서드

Queue<Integer> queue = new LinkedList<>(); //선언
queue.add(1); //queue에 값 1 추가
queue.offer(2); //queue에 값 2 추가
queue.offer(3); //queue에 값 3 추가
queue.peek(); //queue의 처음 값 반환
queue.size(); //queue의 크기 반환
queue.poll(); //queue의 처음 값 반환 및 제거 (만약, queue 가 비어있으면 null 반환)
queue.remove(); //queue의 처음 값 반환 및 제거 (만약, queue 가 비어있으면  exception)
queue.contains(1); //queue에 1이 있는지 check (있다면 true 반환)

Stack VS Queue

public static void main(String[] args) {
	Stack<Integer> stack = new Stack<>();
    Queue<Integer> queue = new LinkedList<>();
    stack.add(1);
    stack.add(2);
    stack.add(3);
    queue.offer(1);
    queue.offer(2);
    queue.offer(3);
    System.out.println("----STACK----");
    while(!stack.isEmpty()){
    	System.out.println(stack.pop());
    }
    System.out.println("----QUEUE----");
    while (!queue.isEmpty()){
    	System.out.println(queue.poll());
    }
//출력
----STACK---- (후입 선출)
3
2
1
----QUEUE----(선입 선출)
1
2
3  
}
profile
매일 매일 성장하자

1개의 댓글

comment-user-thumbnail
2023년 7월 27일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기