患者をリンクリストに追加するプログラムを作成しました。今すぐ出力を得ることができます。 は、患者の重症度が高い方から低い方へ、重症度が同じである場合にはそれに応じて患者を挿入するようにコードを修正しました。私の患者クラスには、名前、到着、重症度という3つの属性があります。実装したリンクリストクラスに患者を追加する
編集3
私はPatient
クラスでcompareSeverity
メソッドを追加しました。
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;
}
これはPatientNode
のコードスニペットです。
class PatientNode {
public Patient data;
public PatientNode next;
public PatientNode(Patient data, PatientNode next) {
this.data = data;
this.next = next;
}
}
これは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++;
n.next = current;
if(previous==null) {
head = n;
} else {
previous.next = n;
}
return;
}
previous = current;
current = current.next;
}
}
}
問題が同じseverity
患者とのようだとき、私は今取得しています出力は、しかし、これです。
患者1、到着2、重大度3
患者2、到着3、重大度3
それとも、彼らは異なるがある場合:
は、私は私の出力は次のようになりたいです重症度は次のようになります。
患者1、到着2、重症度2
患者2は、重大度が同じある場合到着1、短い
severity
において重大度1
が降順とである必要があり、次いでarrival
に従って昇順に格納します。
重症度に応じてどのように患者を保管することができるかについてのアイデアやポインターまたは擬似コードは非常に素晴らしいものです。
のa working exampleを提供することができますあなたはこの自分を実装するために必要されていますか?あなたは本当に['TreeSet'](https://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html)を使用するべきです。 – 4castle
はい私はこれを自分で実装する必要があります。 @ 4castle – Mooe