package Test2;
/*
* Created on 2007-4-8
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @copyright
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class LinkedList {
ListItem first;
ListItem current;
ListItem last;
public LinkedList(){
}
public LinkedList(Person p){
add(p);
}
public LinkedList(Person[] pA){
for (int i = 0; i<pA.length; i++){
add(pA[i]);
}
}
public void add(Person newperson){
ListItem newItem = new ListItem(newperson);//listitem consturctor;
if (first==null){
first = newItem;
current = newItem;
last = newItem;
newItem.setPrev(null);
newItem.setNext(null);
} else {
last.setNext(newItem);//找到最后一个点,last.next赋值,如同,*p指针的next指向newitem。
newItem.setPrev(last);
last = newItem;//链的最后一个元素为newitem;
}
}
public boolean remove(Person person){
boolean removeold=false;
current=first;
while(current!=last){
if(current.item==person)
{if(current == first) {
first.getNext().setPrev(null);
first = first.getNext();
current = first;
} else if (current == last){
last.getPrev().setNext(null);
last = last.getPrev();
current = last;
} else {
current.getPrev().setNext(current.getNext());
current.getNext().setPrev(current.getPrev());
current = current.getNext();
}
removeold=true;break;
}
else {current=current.getNext();}
}
if(current==last&¤t.item==person){
removeold=true;
if (last ==first){
first = null;
last = null;
current = null;
} else{
last.getPrev().setNext(null);
last = last.getPrev();
current = last;
} }
return removeold;
}
public ListItem getFirst(){
if (first!=null){
current = first;
return first;
} else return null;
}
public ListItem getLast(){
if (last!=null){
current = last;
return last;
}
else return null;
}
public ListItem getNext(){
if (current.hasNext()){
current = current.getNext();
return current;
} else
return null;
}
public ListItem getPrev(){//yiqian de
if (current.hasPrev()){
current = current.getPrev();
return current;
} else
return null;
}
public String toString(){
String outString ="<TelephonVerzeichnis:>\n";
ListItem nextItem = first;
while (nextItem != null){
outString += nextItem.toString()+"\n";
nextItem = nextItem.getNext();
}
return outString + "</TelephonVerzeichnis:>\n";
}
}





回复时引用此篇文章


书签