所以我試圖解決一個問題,涉及添加對象到鏈接列表。自上午以來,我一直在討論這個問題,至今我還沒有得到確切的結果。鏈接列表添加方法不按預期工作
我的程序基本上是根據兩個標準severity
和arrival
將患者添加到鏈接列表中。 我想用severity
將患者從最高位增加到最低位。如果他們確實具有相同的嚴重性,那麼我希望按照升序來存儲它們。因此,例如,
患者1,到貨2,嚴重3
患者2,到貨3,嚴重性3
或者,如果他們有不同的嚴重程度則是這樣的:
患者1,到達2,嚴重性2
患者2,到達1,嚴重性1
總之severity
必須是按降序排列和如果嚴重性是相同然後根據arrival
它們存儲在升序排列。
是我迄今爲止嘗試過是這樣的,這種方法是在patient
類:
public boolean compareSeverity(Patient other) {
boolean result = false;
if(other.severity > severity) {
result = true;
} else if(other.severity == severity) {
if(other.arrival > arrival) {
result = true;
} else {
result = false;
}
} else {
result = false;
}
return result;
}
這也是我如何編碼的我add
方法爲linked list
類。
public void add(String name, int severity) {
lastArrival++;
Patient patient = new Patient(name, lastArrival, severity);
PatientNode current, previous;
current = head;
previous = null;
if(head == null) {
head = current = new PatientNode(patient, head);
size++;
} else {
while(current!=null) {
//previous = current;
if(current.data.compareSeverity(patient)) {
PatientNode n = new PatientNode(patient,current);
size++;
if(previous!=null) {
previous.next = n;
}
return;
}
previous = current;
current = current.next;
}
}
}
但是,當我嘗試運行我的程序時,它只顯示一個病人。
我從早上一直在修補我的方法,這是迄今爲止我所得到的。也許我需要一套新的眼睛,因爲現在我無法解決這個問題。任何幫助將不勝感激。 The output that i am getting
編輯2
列表被完全打印出來,但它不執行標準,如果嚴重程度是一樣的,然後存儲患者按升序排列。
我是不是通過'if(head == null)'聲明來處理第一個病人? – Mooe
我剛剛運行該程序,但仍顯示只有一名患者。看起來它正在失去節點。 – Mooe
我剛剛在新患者列表中的第一個病例中進行了適當的更正。在這種情況下,您需要將頭部變量指向新記錄。如果你的測試不是這樣的話,那麼你可能最終永遠不會更新頭部,除非你輸入第一個,否則絕不會看到任何東西。 – AgilePro