2022-05-30 데일리 회고

Sung-min Seo·2022년 6월 1일
0

🥕 Stack / Queue

Stack과 Queue는 여러 자료구조중 하나이다. 자바에서 자료구조는 여러 데이터를 모아 효율적으로 관리할수 있는 방법을 뜻한다. 특히 Stack과 Queue는 자주 등장하는 자료구조들중 하나로 현실에서도 실제 사용 예시를 쉽게 찾을수 있을만큼 흔히 사용된다.

1. Stack

지난번에 정리했던 메모리 구조의 Stack 과 같이 Last-In, First-out의 구조를 가지고 있다. 다만 이번에 정리할 Stack은 메모리 구조가 아닌 자료구조이다. Stack은 선형 자료구조중 하나로 배열에 처음 들어간 정보가 나올때는 가장 마지막으로 나오게 되어있는 구조이다.

Stack은 아무리 데이터가 많아도 무조건 하나씩 밖에 넣고 뺄수 있다. 특히 Stack은 입출력의 방향이 같아야 한다.

⭐Stack Methods

    1. empty(): Stack이 비었는지 확인하는 값을 boolean 값으로 반환
    2. peek(): Stack의 Top에 있는 객체 값을 삭제하지 않고 반환
    3. pop(): Stack의 Top에 있는 객체 값을 삭제하고 반환
    4. push(E item): Stack의 Top에 주어진 값을 넣는다
    5. search(Object o): Stack안에 주어진 객체 값이 있는지 확인하고 위치 값을 반환한다. 만일 찾는 객체가 없을 경우 -1을 반환

2. Queue

Stack과 같은 선형구조의 자료구조이지만 Stack과는 달리 First-In First-Out의 구조를 가지고 있다. 가장 먼저 들어온 자료가 가장 먼저 나간다. 주로 데이터를 일시적으로 쌓아두는 용도로 사용되며 이로 인해 장치 사이에 존재하는 속도 차이나 시간차이를 극복할수 있게 해준다.

Stack과 마찬가지로 아무리 데이터가 많아도 입출력 되는 데이터는 하나씩 이지만 Stack이랑은 달리 입출력 되는 방향은 틀리다. Queue의 경우 한 쪽 끝을 front로 정하여 삭제 연산만을 반복하고 반대쪽 끝을 rear로 정해 삽입 연산만 수행한다.

⭐Queue Methods

    1. add(E e): Queue에 주어진 값을 저장한다. 만일 공간이 부족하지 않다면 true 값을, 공간이 부족하다면 IllegalStateException 에러를 출력한다.
    2. element(): Queue 헤드에 있는 값을 삭제하지 않고 반환
    3. offer(E e): Queue에 주어진 값을 저장한다. 만일 공간이 부족하지 않다면 true 값을, 공간이 부족하다면 false 값을 반환
    4. peek(): Queue 헤드에 있는 값을 삭제하지 않고 반환, 만일 Queue가 비어있다면 null 값을 반환
    5. poll(): Queue 헤드에 있는 값을 삭제하고 반환, 만일 Queue가 비어있다면 null 값을 반환
    6. remove(): Queue 헤드에 있는 값을 삭제하고 반환

Class Stack

Interface Queue

[Java] 자바 Queue 클래스 사용법 & 예제 총정리

⭐ 오늘의 소감

이번주 부터 자료구조 공부를 시작했다. 첫 시작은 재귀로 시작해서 Stack, Queue까지 배웠다. 자료구조 같은 경우 미리 예습을 했지만 이론으로만 공부했었다. 실제로 응용해서 문제를 풀어 다 이해했다고 생갔했던게 무색할 정도로 문제가 어려웠다. 역시 뭐든 직접 써봐야 내 진짜 실력을 안다....

profile
매일 문제 3개 이상 풀기!!

0개의 댓글