Computer Science/Algorithm

[자바의 정석] 스택과 큐

simDev1234 2022. 3. 30. 00:48

1. 스택과 큐

https://www.youtube.com/watch?v=ktvhRSRohR4 

▶ 스택(Stack) : 밑이 막힌 상자

   - LIFO구조. Last in First Out / push(저장) & pop(추출) 방식

   - 배열이 적합   *순차적인 추가/삭제

▶ 큐(Queue)  : 양끝이 뚫린 상자(포장마차의 종이컵 빼는 것과 같다)

   - FIFO구조. First in First Out / otter(저장, 제공한다) & poll(추출) 

   - 링크드리스트가 적합   *비순차적인 추가/삭제

 

■ 스택의 메소드 **JAVA에서 스택은 클래스 (객체생성 가능)

push(Object) : Object  --- Stack객체에 item을 저장

pop( ) : Object      ---  맨 위의 것 꺼내기

empty( ) : boolean ---  비어있는지

peek(  )  : Object   ---  맨 위의 것 읽기 (꺼내지X)

search(Object) : int ---  맨 위에서 1부터시작해서 순서 반환 *못찾으면 -1 반환

 

■ 큐의 메소드  **JAVA에서 큐는 인터페이스 (객체생성 불가능)

offer(Object) : boolean  --- Queue 객체에 item을 저장(예외 발생X)

poll( ) : Object      ---  객체를 꺼내서 반환(예외 발생X)

peek(  )  : Object   ---  삭제 없이 요소 읽음(꺼내지X)

add(Object) : boolean  --- Queue 객체에 item을 저장(예외 발생O)

remove() : Object  ---  객체를 꺼내서 반환(예외 발생O)

   [ 큐 사용법]
   1. 큐를 직접 구현
   2. 큐를 구현한 클래스를 사용 >> Java API 중 Queue를 구현한 목록 확인 (LinkedList도 큐 구현)
      Queue q = new LinkedList();