자료구조 구현

큐(Queue)

lipnus 2019. 5. 13. 00:17
반응형
package 큐구현;

import java.util.NoSuchElementException;

class Queue<T>{

class Node<T>{
private Node<T> next;
private T data;

public Node(T data){
this.data = data;
}
}

private Node<T> start;
private Node<T> end;


public void add(T item){
Node<T> node = new Node<T>(item);

if(end!=null){
end.next = node;
}
end = node;
if(start==null){
start = node;
}
}

public T pull(){

if(start==null){
throw new NoSuchElementException();
}

T data = start.data;
start = start.next;

//조심
if(start==null){
end = null;
}
return data;
}

public T peek(){
if(start==null){
throw new NoSuchElementException();
}
return start.data;
}


public boolean isEmpty(){
return (start==null);
}

}


public class Main {
public static void main(String[] args){

Queue<Integer> q = new Queue<>();

q.add(1);
q.add(2);
q.add(3);
q.add(4);

System.out.println(q.pull());
System.out.println(q.pull());
System.out.println(q.peek());
System.out.println(q.pull());
System.out.println(q.isEmpty());
System.out.println(q.pull());
System.out.println(q.isEmpty());
}
}


반응형

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

문제풀이용 Double LinkedList  (0) 2019.11.29
이진탐색트리(BST, Binary Search Tree)  (0) 2019.05.07
병합정렬  (0) 2019.05.07
백트래킹 구현  (0) 2019.04.03
스택  (0) 2019.03.28