HappyWeasel

Java - 스택( Stack ), 큐 ( Queue ) 본문

Basic/Java

Java - 스택( Stack ), 큐 ( Queue )

HappyWeasel 2019. 4. 20. 23:28

Stack 객체를 사용하기 위해서는 
import java.util.Stack;
위의 라이브러리를 불러와야한다.

Stack은 LIFO이다.
LIFO => Last In Fisrt Out (마지막에 입력 된 값이 제일 먼저 출력된다.)
method 호출, 수식계산, undo/redo, 뒤로/앞으로(웹브라우저)에서 사용된다.

  • push : 입력
  • pop : 출력
Stack<Integer> st = new Stack<Integer>(); // 스택의 생성

//Deque<Integer> st = new ArrayDeque<Integer>();

 

// push() 메소드를 이용한 요소의 저장

st.push(4);

st.push(2);

st.push(3);

st.push(1);

 

// peek() 메소드를 이용한 요소의 반환

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

System.out.println(st);

 

// pop() 메소드를 이용한 요소의 반환 및 제거

System.out.println(st.pop());

System.out.println(st);

 

// search() 메소드를 이용한 요소의 위치 검색

System.out.println(st.search(4));

System.out.println(st.search(3));

메소드설명

boolean empty() 해당 스택이 비어 있으면 true를, 비어 있지 않으면 false를 반환함.
E peek() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환함.
E pop() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환하고, 해당 요소를 스택에서 제거함.
E push(E item) 해당 스택의 제일 상단에 전달된 요소를 삽입함.
int search(Object o)

해당 스택에서 전달된 객체가 존재하는 위치의 인덱스를 반환함.

이때 인덱스는 제일 상단에 있는(제일 마지막으로 저장된) 요소의 위치부터 0이 아닌 1부터 시작함.


Queue는 LinkedList에서 사용된다.

import java.util.LinkedLIst;

Queue : FIFO (First In First Out)
최근 사용문서, 인쇄작업대기목록, Buffer에 사용된다.

  • offer : 입력
  • poll : 출력
LinkedList<String> qu = new LinkedList<String>(); // 큐의 생성

//Deque<String> qu = new ArrayDeque<String>();

 

// add() 메소드를 이용한 요소의 저장

qu.add("넷");

qu.add("둘");

qu.add("셋");

qu.add("하나");

 

// peek() 메소드를 이용한 요소의 반환

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

System.out.println(qu);

 

// poll() 메소드를 이용한 요소의 반환 및 제거

System.out.println(qu.poll());

System.out.println(qu);

 

// remove() 메소드를 이용한 요소의 제거

qu.remove("하나");

System.out.println(qu);

메소드설명

boolean add(E e)

해당 큐의 맨 뒤에 전달된 요소를 삽입함.

만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생시킴.

E element() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
boolean offer(E e) 해당 큐의 맨 뒤에 전달된 요소를 삽입함.
E peek()

해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.

만약 큐가 비어있으면 null을 반환함.

E poll()

해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거함.

만약 큐가 비어있으면 null을 반환함.

E remove() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거함.

 

 

Comments