본문 바로가기

자료구조

큐 - 리스트로 구현

 

1) 리스트를 이용한 큐

- 리스트를 이용한 큐에도 원형 큐처럼 front와 rear가 존재합니다. 

   front는 꺼내야 할 노드를 가리키고, rear는 맨 마지막 노드를 가리킵니다. 

   rear를 통해 빠르게 마지막 노드를 찾아, 마지막 노드의 다음 노드로 삽입할 수 있도록 합니다. 

[연결 리스트를 이용한 큐 구현]

class Node{
	Node next;
    Object data;
}


public class ListQueue{

	Node front;
    Node rear;
    
    public boolean isEmpty(){
    	return null == front;
    }
    
    public void add(Object data){
    	Node newNode = new Node();
        newNode.data = data;
        if(isEmpty()){
        	front = rear = newNode;
        }else{
        	rear.next = newNode;
            rear = newNode;
        }
    }
    
    public Object poll(){
    	if(isEmpty()){
        	return null;
        }
        
        Node removeNode = front;
        Object tempData = removeNode.data;
        front = removeNode.next;
        
        if(removeNode == rear){
        	rear = null;
        }
        return tempData;
    }
    
    public Object peek(){
    	if(isEmpty()){
        	return null;
        }
        return front.data;
    }
    
}

 

참고

[자바 자료구조 강의] Queue(리스트) - 구현 - 코드라떼 (codelatte.io) 

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

이진 트리  (0) 2022.09.03
트리 - 개념  (0) 2022.09.01
큐 - 개념, 배열로 구현  (0) 2022.08.23
스택  (0) 2022.08.23
LinkedList의 get메소드와 반복문을 같이 사용하지 않아야 하는 이유  (0) 2022.08.22