🌏 주제 : 큐란?
- 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(FIFO: first in first out)
🌏 링 버퍼로 큐 만들기
- 배열 요소를 앞쪽으로 옮기지 않는 큐.
- 배열의 맨 뒤가 맨 앞과 연결되어있는 자료구조.
- 맨 앞 - front
- 맨 뒤 - rear
- 링 버퍼는 오래된 데이터를 버리는 용도로 사용할 수 있다.
🌏 예제
package Chapter4;
import java.util.Scanner;
public class LastNElements {
public static void main(String[] args) {
// 원하는 개수만큼 값을 계속 입력받고 요솟수가 N인 배열에 마지막 N개를 저장
Scanner scan = new Scanner(System.in);
final int N = 10;
int[] a = new int[N];
int cnt = 0;
int retry;
System.out.println("정수를 입력하세요.");
do {
System.out.printf("%d번째 정수: ", cnt + 1);
a[cnt++ % N] = scan.nextInt();
System.out.print("계속 할까요? (예.1 / 아니요.0): ");
retry = scan.nextInt();
} while (retry == 1);
int i = cnt - N;
if (i < 0) i = 0;
for( ; i < cnt; i++)
System.out.printf("%2d번째 정수 = %d\n", i + 1, a[i%N]);
}
}
------
정수를 입력하세요.
1번째 정수: 15
계속 할까요? (예.1 / 아니요.0): 1
2번째 정수: 17
계속 할까요? (예.1 / 아니요.0): 1
3번째 정수: 2
계속 할까요? (예.1 / 아니요.0): 0
1번째 정수 = 15
2번째 정수 = 17
3번째 정수 = 2
'Algorithm > 자료구조와 함께 배우는 알고리즘 (자바편)' 카테고리의 다른 글
06 - 힙 정렬(자바편) (0) | 2023.03.11 |
---|---|
05 - 재귀 알고리즘 (자바편) (1) | 2023.03.05 |
04-1 스택이란?(자바편) (0) | 2023.02.28 |
03-3(이진 검색) - 이진 검색(자바편) (0) | 2023.02.17 |
03-2(선형검색) - 보초법으로 선형 검색 구현하기(자바편) (0) | 2023.02.16 |