java 代码如下:
package algorithm;
public class LinkedList {
private class Data {
public Object obj;
public Data next;
public Data(Object obj) {
this.obj = obj;
next = null;
}
}
private Data first=null;
/**
* 头插法
*/
public void insert(Object obj) {
if(first == null) {
first = new Data(obj);
} else{
Data newNode = new Data(obj);
newNode.next = first ;
first = newNode;
}
}
/**
*
* @param obj
*/
public void delete(Object obj) {
if(first==null)
return;
Data beforeNeedDel = first;
Data needDel = first;
while(needDel!=null) {
if(beforeNeedDel==needDel && needDel.obj.equals(obj)) {
first = first.next;
beforeNeedDel = first;
needDel = first;
} else if(beforeNeedDel==needDel && !needDel.obj.equals(obj)){
needDel = needDel.next;
} else if(beforeNeedDel!=needDel && needDel.obj.equals(obj)){
needDel = needDel.next;
beforeNeedDel.next = needDel;
} else if(beforeNeedDel!=needDel && !needDel.obj.equals(obj)){
needDel = needDel.next;
beforeNeedDel = beforeNeedDel.next;
}
}
}
/**
*
* @param obj
*/
public Data find(Object obj) {
Data needFind = first;
while(needFind!=null) {
if(needFind.obj.equals(obj)) {
return needFind;
}
needFind = needFind.next;
}
return null;
}
public void display() {
Data displayNode = first;
while(displayNode!=null) {
System.out.print(displayNode.obj+"——>");
displayNode = displayNode.next;
}
}
public static void main(String[] args) {
LinkedList linkList = new LinkedList();
linkList.insert("3");
linkList.insert("2");
linkList.insert("3");
linkList.insert("4");
linkList.insert("5");
linkList.insert("3");
linkList.insert("3");
linkList.display();
System.out.println(linkList.find("3"));
linkList.delete("3");
linkList.display();
}
}