Published 2022. 4. 13. 18:18
반응형

Stack, Queue 란?

  • Stack과 Queue란 둘 다 자료구조의 종류 중 하나
  • Stack은 LIFO(Last In First Out),
  • Queue는 FIFO(First In First Out) 형식의 자료구조.

Stack의 메서드

push(Object o)

  • stack의 맨 뒤에 값 추가, 추가된 값 return

pop()

  • stack의 마지막 값 return 후 삭제

peek()

  • stack의 마지막 값 return (삭제 X)

isEmpty()

  • stack이 비어있는지 여부 return

search(Object o)

  • stack에 o가 몇번째에 있는지 return
  • 맨 뒷자리부터 1, 2, 3, ... return
  • 존재하지 않으면 -1 return

size()

  • stack의 크기 return

Stack 예제

package StackQueue;

import java.util.Stack;

public class StackMain {

    public static void main(String[] args) {
        Stack<Integer> s = new Stack<Integer>();
        s.push(1);
        s.push(2);
        s.push(3);
        s.push(4);
        System.out.println(s);

        int p;
        p = s.peek();
        System.out.println(p);
        System.out.println(s);

        p = s.pop();
        System.out.println(p);
        System.out.println(s);

        System.out.println(s.search(3));
    }
}

결과

[1, 2, 3, 4]
4
[1, 2, 3, 4]
4
[1, 2, 3]
1

Queue의 메서드

add(Object o), offer(Object o)

  • queue에 값 추가, 성공시 true return
  • 실패시 add()는 exception 발생, offer()은 false return

poll(), remove()

  • queue의 첫번째 값 return 후 삭제
  • 실패시 poll()은 null return, remove()는 exception 발생

peek(), element()

  • queue의 첫번째 값 return
  • 실패시 peek()은 null return, element()는 exeption 발생

isEmpty()

  • queue가 비어있는지 여부 return

size()

  • queue의 크기 return

Queue 예제

package StackQueue;

import java.util.LinkedList;
import java.util.Queue;

public class QueueMain {

    public static void main(String[] args) {
        Queue<Integer> q = new LinkedList<Integer>();
        q.offer(1);
        q.offer(2);
        q.offer(3);
        q.add(4);
        System.out.println(q);

        int p;
        p = q.poll();
        System.out.println(p);
        System.out.println(q);
        p = q.remove();
        System.out.println(p);
        System.out.println(q);

        p = q.peek();
        System.out.println(p);
        System.out.println(q);
    }
}

결과

[1, 2, 3, 4]
1
[2, 3, 4]
2
[3, 4]
3
[3, 4]
반응형

↓ 클릭시 이동

복사했습니다!