자바의 정석 - 스택과 큐

송용준·2023년 4월 3일

스택과 큐

  • 스택 : LIFO(후입선출, Last In First Out)구조, 마지막에 저장된 것을 제일 먼저 꺼내게 된다.
    ++ 순차적 추가,삭제 하므로 배열에 사용

  • 큐 : FIFO(선입선출, First In First Out)구조, 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다.
    ++ 자리 이동이 필요없으므로 링크드리스트에 사용



--> 스택


--> 큐


스택은 클래스가 있어서 Stack st = new Stack(); 으로 생성 가능
큐는 인터페이스라 Queue q = new Queue(); 이런식으로 생성 불가능

< 큐 만드는 방법 >
1. Queue를 직접 구현
2. Queue를 구현한 클래스를 사용

우리는 Java API를 사용해서 2.를 사용하자

import java.util.*;

public class Stack_Queue {
	public static void main(String[] args) {
		Stack st = new Stack();
		Queue q = new LinkedList(); // 	Queue 인터페이스의 구현체인 LinkedList
		
		st.push("0");
		st.push("1");
		st.push("2");
		
		q.offer("0");
		q.offer("1");
		q.offer("2");
		
		System.out.println("= Stack = ");
		while(!st.empty()) {
			System.out.println(st.pop());	// 스택에서 요소 하나를 꺼내
		}									// 결과 : 2 1 0
		System.out.println("= Queue =");
		while(!q.isEmpty()) {
			System.out.println(q.poll()); 	// 큐에서 요소 하나를 꺼내
											// 결과 : 0 1 2
		}
	}
}
profile
용용

0개의 댓글