私はスキャナに読み込まれるintのファイルを作成しています。スキャナは5つのint値を保持するLinkedList of Jobを生成します。これらのジョブはMergeSortでソートされ、スケジュールされます。結果のスケジュールは、ファイルに数百があっても1つの値しか返しません。LLNodesを追加できないLinkedList
IterableとMergesortの両方が正しく機能していると判断しました。バグはLinkedListの作成のどこかにあります。
エラー領域までの私のコードが下に表示されます。
if(sortable.getHead()==null){
sortable.setHead(new LLNode<Job>(new Job(ints[0],ints[1],
ints[2],ints[3],ints[4]),null));
sortable.getHead().getElement().setOrdering(ordering);
listptr = sortable.getHead();
}
私はプログラムが失敗したところ、これがあると思う:私はそれが正しく頭を設定していることが確認さ
public JobSchedule makeSchedule(JobSchedule.Metric metric, Job.JobOrdering ordering){
Scanner s = new Scanner(file);
SortableLinkedList<Job> sortable = new SortableLinkedList<Job>();
LLNode<Job> listptr = sortable.getHead();
//reads the contents of file into a storage array and...
// ...inputs the stored values as parameters for Job constructors
while(s.hasNext()){
int[] ints = new int[5];
for(int i = 0; i<5; i++){
ints[i]=s.nextInt();
}
else{
listptr.setNext(new LLNode<Job>(new Job(ints[0],ints[1],
ints[2],ints[3],ints[4]),null));
listptr = listptr.getNext();
}
}
私のバグテストでは(上記のelseブロック内に配置):
すべての繰り返しで正常に印刷されました。
どのような考えですか?
ps。 LLNodeとLinkedListのコード:コードの
public class LLNode<T>{
private T element;
private LLNode<T> next;
public LLNode(T element, LLNode<T> next){
this.element = element;
this.next = next;
}
public T getElement(){
return this.element;
}
public LLNode<T> getNext(){
return this.next;
}
public void setNext(LLNode<T> node){
this.next=node;
}
}
public class LinkedList<T>{
private LLNode<T> head;
public LinkedList(){
head = null;
}
public LinkedList(LLNode<T> head){
this.head = head;
}
public LLNode<T> getHead(){
return head;
}
public void setHead(LLNode<T> node){
this.head = node;
}
}
はSEでこのクラスのLLNodeですか?私はこれまでにそれを聞いたことがないし、Googleの検索はそれが示唆されていません。また、エラーメッセージ**とは何ですか? – bdares
私の教授が作成したLinkedListとLLNodeはありません。上記の質問を編集してコードを追加します。 –
また、バグではなく、エラー(まだ専門用語ではあいまい)ではないと思います。だからエラーメッセージは、プログラムからの悪い出力。 –