[자료구조][JAVA]큐(Queue)

2025. 1. 12. 21:11·자료구조

개념

💡큐(Queue)란??
한쪽 끝에서 삽입이 일어나고 그 반대쪽 끝에서 삭제가 일어나는 순서 리스트이다. 새로운 원소가 삽입되는 끝은 리어(rear)라 하고 원소가 삭제되는 끝을 프런트(front)라 한다.

특징

  • FIFO(First-In-First-Out) 선입선출 구조의 자료구조다
  • 원소의 추가가 O(1)
  • 원소의 제거가 O(1)
  • 제일 앞/뒤의 원소 확인이 O(1)
  • 제일 앞/뒤가 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능
  • tail(=rear)과 head(=front)가 존재한다.
  • tail(=rear)과 head(=front)는 배열로 표현했을 때 가장 처음 0번지에 존재한다.
  • 배열로 표현하면 head ~ tail-1번지가 원소들이 들어있는 위치다.

구조

class Queue{

    int[] save;
    int head = 0;
    int tail = 0;
    public Queue()
    {
      save = new int[100000];
    }
    public void push(int x){
        save[tail] = x;
        tail++;
    }
    public int pop(){
        if(empty() == 1)
        {
            return -1;
        }
        return save[head++];
    }
    public int front(){
        if(empty() == 1)
        {
            return -1;
        }
        return save[head];
    }
    public int back(){
        if(empty() == 1)
        {
            return -1;
        }
        return save[tail-1];
    }
    public int size(){
        return tail - head;
    }
    public int empty(){
        if(tail == head){
            return 1;
        }
        else
        {
            return 0;
        }
    }

}
  • push : 뒷부분에 원소를 넣어준다.
  • pop : 앞부분에 있는 원소를 반환해준다. 그리고 삭제한다.
  • front : 앞부분의 원소를 반환해준다.
  • back : 뒷부분의 원소를 반환해준다.
  • size : 큐의 크기를 반환해준다.
  • empty : 큐가 비어있는지 차있는지 판단해준다.

 

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

[자료구조][JAVA] 스택(Stack)  (0) 2025.01.09
'자료구조' 카테고리의 다른 글
  • [자료구조][JAVA] 스택(Stack)
각쿄
각쿄
  • 각쿄
    개발일기
    각쿄
  • 전체
    오늘
    어제
    • 분류 전체보기 (24)
      • 알고리즘 (13)
        • 문제풀이 : 프로그래머스 (0)
        • 문제풀이 :백준 (13)
        • 알고리즘 개념 (0)
      • 자료구조 (2)
      • 기초 (0)
        • 운영체제 (0)
        • 디자인패턴 (0)
        • 웹 (0)
        • 컴퓨터 네트워크 (0)
      • Spring (0)
      • IT이슈 (0)
      • 자바(Java) (5)
      • 에러(Error) (2)
        • Mysql (1)
      • 활동 (0)
        • 혼공학습단13기 - 혼자 공부하는 컴퓨터구조 운영.. (0)
      • 기능 구현! (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java
    혼공학습단
    mysql
    백준
    다이나믹 프로그래밍
    이분탐색
    Stack
    스택
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
각쿄
[자료구조][JAVA]큐(Queue)
상단으로

티스토리툴바