[Java] Stack과 Queue

선영·2022년 9월 28일
0

StackQueue

스택(stack) 은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out) 구조 로 되어 있고, 큐(queue) 는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In FIrst Out) 구조 로 되어 있음.

순차적으로 데이터를 추가하고 삭제하는 스택에는 ArrayList와 같은 배열기반의 컬렉션 클래스가 적합하지만, 는 데이터의 추가/삭제가 쉬운 LinkedList로 구현하는 것이 더 적합함.

StackQueue 의 메서드

    // 예제 11-2 
    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()); // 스택에서 요소 하나를 꺼내서 출력
	}

	System.out.println("= Queue =");
	while(!q.isEmpty()) {
	System.out.println(q.poll()); // 큐에서 요소 하나를 꺼내서 출력
	}

StackQueue 의 활용

  • 스택 활용 예 : 수식계산, 수식괄호검사, 워드프로세서의 undo/redo
  • 큐 활용 예 : 최근사용문서, 인쇄작업 대기목록, 버퍼(buffer)

0개의 댓글