728x90
반응형
* 해당 게시글은 JAVA의 정석 스터디 복습 용으로 작성되었습니다.
[Stack vs Queue]
- 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out) 구조로 되어있다.
- 큐는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In First Out)구조로 되어있다.
- 0->1->2 순으로 데이터를 삽입했을 때,
스택 은 2->1->0 순으로 삭제한다. : LIFO
큐 는 0->1->2 순으로 삭제한다. : FIFO
[참고] 스택은 자바에서 제공하는 클래스가 있지만, 큐는 인터페이스로만 정의되어 있어 따로 구현이 필요하다.
예제
package ch11;
import java.util.*;
public class StackQueueEx {
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack st = new Stack();
Queue q = new LinkedList(); // Queue 구현체인 LinkedList 사용
/*Stack : 후입선출 (LIFO : Last In First Out) */
/*Queue : 선입선출 (FIFO : First In First Out) */
/* Queue 와 Stack 에 0, 1, 2 순으로 데이터 삽입*/
/*Stack 에 데이터 삽입 push()*/
st.push("0");
st.push("1");
st.push("2");
/*Queue 구현체 LinkedList 에 데이터 삽입 offer() */
q.offer("0");
q.offer("1");
q.offer("2");
System.out.println("= Stack =");
while(!st.empty())
{
//스택이 비어있지 않을때( empty() ), 스택의 요소 하나씩 꺼냄 ( pop() )
System.out.println(st.pop());
}
System.out.println("= Queue =");
while(!q.isEmpty())
{
//큐를 구현한 링크드 리스트가 비어있지 않을때( isEmpty() ), 큐의 요소 하나씩 꺼냄 ( poll() )
System.out.println(q.poll());
}
}
}
[출력]
728x90
반응형
'Java' 카테고리의 다른 글
[Java] 연결 리스트(LinkedList) (0) | 2023.01.03 |
---|---|
[Java] 배열(Array) 구현 (0) | 2023.01.03 |
[JAVA] String, String Builder, String Text Block (0) | 2022.04.13 |
[JAVA] Collections Framework - Arrays (0) | 2022.04.01 |
[JAVA] Collection Framework - ArrayList 1 (0) | 2022.03.28 |