[자료구조] Queue구현하기: (JAVA)
Queue는 First In First Out으로 FIFO라고 부른다.
Queue를 구성하는 함수는
add() : 맨 끝에다가 data를 넣는것
remove() : 맨 앞에서 data를 꺼내는 것
peek() : 맨 앞에 있는 data 보는 것
isEmpty : Queue가 비어있나 확인 하는 것
코드로 구현을 해보자!
1. Queue 클래스 생성
-
Queue클래스의 data 타입은 T이다.
-
T타입의 변수명 data를 선언
-
다음 Node 선언
public Node(T data){
this.data = data;
}
생성자를 만들어 Node클래스에 들어오는 data를 내부 변수에 저장한다.
private Node<T> first;
private Node<T> last;
Queue는 첫번째와 마지막을 알아야 하므로 T타입의 변수 first, last를 생성
2. add 메소드 만들기
- add 메소드 생성
public void add(T item){
Node<T> t = new Node<T>(item):
}
- T타입의 item을 받아서 노드를 생성한다.
if(last != null){
last.next = t;
}
last = t;
if(first == null) {
first = last;
}
}
- 만약 마지막이 비어있지 않다면, t의 값은 마지막node의 다음으로 정한다.
그리고 t의 값을 last에 넣어준다. - 만약 first가 비어있다면, 마지막node를 first노드에 넣어준다.
3. remove() 메소드 만들기
반환 타입이 T인 remove 메소드를 만들자.
if(first == null){
throw new NoSuchElementException();
}
만약에 첫번째가 비어있다면 제거할게 없으므로 예외처리를 해준다.
T data = first.data
first = first.next
T타입의 변수명 data에 first.data를 담는다.
firset.next를 first에 담는다.
if(first == null){
last = null
}
만약 첫번째가 비어있다면, 마지막도 비어있으니 last = null;로 채워주자
맨 앞에있는 data를 반환하기 전에, 그 다음 주소에 있는 애를 first로 만들어 주자.
return data;
data를 반환한다.
4. peek메소드 만들기
public T peek(){
}
public한 필드,
반환 값은 T 타입
메소드 이름은 peek
if(first==null){
throw new NoSuchElementException();
}else
return first.data;
first가 null이면 예외처리
null이 아니면 첫번째 data를 return한다.
5. isEmpty 메소드 만들기
필드는 public 하다.
return 타입은 boolean형이다.
메소드의 이름은 isEmpty이다.
isEmpty()가 호출되면, first == null; 인지 false/true 값을 반환한다.
마지막 실행해보기!
Author And Source
이 문제에 관하여([자료구조] Queue구현하기: (JAVA)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hoha/자료구조-Queue구현하기-JAVA저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)