0
我遇到了一些困難。我想修改下面這段代碼來對Person類型的單個鏈表進行排序。例如,我有:按照姓名和出生日期對鏈接的鏈表進行排序
class Person{
private String fn = "NN";
private String ln = "NN";
private Date dob = new Date(1, 1, 1970);
}
我想按姓氏,姓氏和出生日期對人員的鏈接列表進行排序。與此同時,我得到了一段代碼來適應它,但我似乎無法找到解決方法。任何幫助將不勝感激。這裏是適應以下代碼:
public void sort() {
TextIO.putln("sorting...");
if (head == null)
return;
Node max, t, out = null, h = new Node();
h.next = head;
while (h.next != null) {
// display();
TextIO.putln("max=" + (max = findmax(h)).next);
t = max.next;
max.next = t.next;
t.next = out;
out = t;
}
head = out;
}
private Node findmax(Node h) {
char max = '\0';
Node maxNode = h;
for (Node tmp = h; tmp.next != null; tmp = tmp.next) {
if (tmp.next.data.c >= max) {
max = tmp.next.data.c;
maxNode = tmp;
}
}
return maxNode;
}
如果沒有,詳細的建議將非常有用的謝謝。請注意,我不能使用collection.sort或任何其他ready函數,它必須實施。
感謝