【发布时间】:2014-12-27 17:30:57
【问题描述】:
这是我尝试过的......
这只会交换第一个链接...我该如何解决这个问题以对整个链接列表进行排序????
链表类
public class LinkedList {
private Link first;
public void LinkList() {
first = null;
}public Link find(int key) {
Link current = first;
while (current.iData != key) {
if (current.next == null) {
return null;
} else {
current = current.next;
}
}
return current;
}
public void insertFirst(int idata, String sdata) {
Link nl1 = new Link(idata, sdata);
nl1.next = first;
first = nl1;
}
public Link deleteFirst() {
Link temp = first;
first = first.next;
return temp;
}
public void displayList() {
System.out.println("List : ");
Link current = first;
while (current != null) {
current.displayLink();
current = current.next;
}
System.out.println("");
}
public Link delete(int key) {
Link current = first;
Link previous = first;
while (current.iData != key) {
if (current.next == null) {
return null;
} else {
previous = current;
current = current.next;
}
}
if (current == first) {
first = first.next;
} else {
previous.next = current.next;
}
return current;
}
public void insertmidl(int key, int idata, String sdata) {
Link nl = new Link(2, "name2");
Link current = first;
Link previous = first;
while (current.iData != key) {
if (current.next == null)
{
System.out.println("");
} else {
previous = current;
current = current.next;
}
}
if (current == first) {
nl.next = current.next;
current.next = nl;
}
previous.next = nl;
nl.next = current;
}
public void update(int key, int i, String n) {
Link tobeupdated = find(key);
tobeupdated.iData = i;
tobeupdated.sData = n;
}
public void sort(){
Link current = first;
if(current.iData > current.next.iData) {
Link temp = current.next;
current.next = current.next.next;
temp.next = current;
first = temp;
}
}
链接类
public class Link {
public int iData;
public String sData;
public Link next;
public Link(int id,String sd)
{
iData =id;
sData =sd;
next = null;
}
public void displayLink()
{
System.out.println(iData+""+sData);
}
}
有没有人可以帮助我? ..................................................... ....................
【问题讨论】:
-
从链表创建一个 BST。执行中序遍历。基于该 InOrder 遍历创建 LinkedList。
标签: java algorithm sorting linked-list