【发布时间】:2016-11-25 23:14:26
【问题描述】:
所以我正在尝试解决一个涉及将对象添加到链表的问题。我从早上开始就一直在处理这个问题,到目前为止我还没有得到确切的输出。
我的程序基本上是根据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;
}
这就是我为linked list 类编写add 方法的方式。
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
该列表正在完全打印出来,但它没有执行如果严重程度相同则按升序存储患者的标准。
【问题讨论】:
标签: java pointers linked-list nodes singly-linked-list