호비시의 끄적끄적

Stack, Queue 본문

자료구조

Stack, Queue

호비시 2022. 7. 5. 22:53

Stack

Stack은 책을 차곡차곡 쌓은 것 처럼 LIFO(Last In First Out) 방식을 활용한 자료구조이다.

Method

push(data) : 맨 앞에 데이터 넣기
pop() : 맨 앞의 데이터 추출
peek() : 맨 앞의 데이터 보기
isEmpty() : 비어있는지 안 비어있는지 여부 반환

활용

  • 웹 브라우저 방문기록
  • 되돌리기(Ctrl + Z)

    Stack<Integer> stack = new Stack<>();

    stack.push(1);     // 1 넣기
    stack.push(2);    // 2 넣기
    stack.push(3);     // 3 넣기

    stack.peek();     // top 보기, 3 출력
    stack.pop();    // top 추출, 3 꺼내짐
    stack.isEmpty(); // false 

Queue

Queue는 줄 서서 기다리는 것 처럼 FIFO(First In First Out) 방식을 활용한 자료구조이다.

Method

enqueue(data) : 맨 뒤에 데이터 추가하기
dequeue() : 맨 앞의 데이터 추출
peek() : 맨 앞의 데이터 보기
isEmpty() : 비어있는지 안 비어있는지 여부 반환

활용

  • 대기열 순서
  • 프로세스 관리

    Queue<Integer> queue = new LinkedList<>();

    queue.add(1);    // 1 넣기
    queue.add(2);    // 2 넣기
    queue.add(3);    // 3 넣기

    queue.peek();    // 맨 앞 보기, 1 출력
    queue.poll();    // 맨 앞 추출, 1 꺼내짐
    queue.isEmpty();// false    

add() 와 offer()의 차이

  • add()
    해당 큐 맨 뒤의 값 삽입
    값 추가 성공시 true 반환
    큐가 꽉찬 경우 illegalStateException 에러 발생
  • offer()
    해당 큐 맨 뒤의 값 삽입
    값 추가 성공시 true 반환
    값 추가 실패시 false 반환

remove() 와 poll()의 차이

  • remove()
    해당 큐 맨 앞에 있는 값 반환 후 삭제
    큐가 비어있는 경우 NoSuchElementException 에러 발생
  • poll()
    해당 큐 맨 앞에 있는 값 반환 후 삭제
    큐가 비어있는 경우 null 반환

'자료구조' 카테고리의 다른 글

List, Set, Map  (0) 2022.06.26
Comments