001 package aima.search.nodestore; 002 003 import java.util.Comparator; 004 import java.util.List; 005 import java.util.PriorityQueue; 006 007 import aima.search.framework.Node; 008 import aima.search.framework.NodeStore; 009 010 /** 011 * @author Ravi Mohan 012 * 013 */ 014 015 public class PriorityNodeStore implements NodeStore { 016 017 PriorityQueue<Node> queue; 018 019 public PriorityNodeStore(Comparator<Node> comparator) { 020 021 queue = new PriorityQueue<Node>(5, comparator); 022 // queue = new PriorityQueue(comparator); 023 } 024 025 public void add(Node anItem) { 026 027 queue.add(anItem); 028 } 029 030 public Node remove() { 031 032 return queue.remove(); 033 } 034 035 public void add(List<Node> nodes) { 036 for (Object n : nodes) { 037 queue.add((Node) n); 038 } 039 040 } 041 042 public boolean isEmpty() { 043 044 return queue.isEmpty(); 045 } 046 047 public int size() { 048 return queue.size(); 049 } 050 051 @Override 052 public String toString() { 053 return queue.toString(); 054 } 055 056 }