우선순위 큐는
먼저 드러온 데이터는 먼저 나가는 구조를 가진
일반적인 큐와 다르게
데이터의 우선순위를 결정하고,
그 우선순위가 높은 엘리먼트가 먼저 나가는 자료구조이다.
우선순의 큐는 힙을 이용하여 구현하는 것이 일반적이다.
이 힙은 이진트리 구조로 이루어져 있는데
오늘 구현할 우선순위 큐는
이진트리 구조로 이루어져 있지 않은,
단순 배열을 사용한 우선순위 큐이다.
먼저, 우선순위 큐의 기능을 가진
MyPriorityQueue 클래스를 생성해주었다.



가장 이해하기 어려웠던 부분은
27~29번 줄이었는데
아직도 왜 앞으로 인덱스를 이동시키는지 잘 모르겠다.
그래서 이 부분은 좀 더 찾아보기로 하고
우선은 넣을 값들에 대한 정보를 저장하고 있는
Human클래스를 만들었다.

implements는 상속으로 extends와 약간의 차이를 보인다.
implements의 가장 큰 특징은 오버라이딩(다중 상속)을 시켜야 한다는 점이다.
implements와 extends의 특징은 다음과 같다.
- extends는 일반 클래스와 abstract 클래스 상속에 사용되고, implement는 interface 상속에 사용된다.
- class가 class를 상속받을 땐 extends를 사용하고, interface가 interface를 상속 받을 땐 extends를 사용한다.
- class가 interface를 사용할 땐 implements를 써야하고
- interface가 class를 사용할 땐 implements를 쓸수 없다.
- extends는 클래스 한 개만 상속 받을 수 있다.
- extends는 클래스 한 개만 상속 받을 수 있다.
- extends 자신 클래스는 부모 클래스의 기능을 사용한다.
- implements는 여러개 사용 가능하다.
- implements는 설계 목적으로 구현 가능하다.
- implements한 클래스는 implements의 내용을 다 사용해야 한다.
Comparable은 자기 자신과 파라미터로 들어오는 객체를 비교한다.
다음으로는 Main 클래스를 생성시켜
결과를 확인해보았다.

.....
오류가 났다.

왜 났는지 모르겠다.
좀 더 찾아보고 수정해야겠다.
'JAVA' 카테고리의 다른 글
| 11. HashMap 사용해보기 (0) | 2022.03.04 |
|---|---|
| 10. HashSet사용하기, TreeSet구현하기 (0) | 2022.03.04 |
| 08. 큐, 선형 큐 구현하기 (0) | 2022.02.28 |
| 07. Stack 구현하기 (0) | 2022.02.25 |
| 06. LinkedList 구현해보기 (0) | 2022.02.24 |