package datastructure;
public class List {
public static void main(String args[]){
List list=new List();
ListItem item=new ListItem(null,3,null);
list.insert(new ListItem(null,1,null));
list.insert(new ListItem(null,2,null));
list.insert(item);
list.insert(new ListItem(null,4,null));
list.insert(new ListItem(null,5,null));
list.listDelete(item);
list.insert(new ListItem(null,6,null));
list.insert(new ListItem(null,7,null));
list.insert(new ListItem(null,8,null));
list.insert(new ListItem(null,9,null));
System.out.println(list.search(3).key);
System.out.println(list.search(7).key);
}
private ListItem sentinel;
public List(){
sentinel=new ListItem(null,-1,null);
sentinel.prev=sentinel;
sentinel.next=sentinel;
}
public void listDelete(ListItem x){
x.prev.next=x.next;
x.next.prev=x.prev;
}
public ListItem search(int k){
ListItem x=sentinel.next;
while(x!=sentinel && x.key!=k){
x=x.next;
}
return x;
}
public void insert(ListItem x){
x.next=sentinel.next;
sentinel.next.prev=x;
sentinel.next=x;
x.prev=sentinel;
}
}
class ListItem{
public ListItem prev;
public int key;
public ListItem next;
public ListItem(ListItem prev,int key,ListItem next){
this.prev=prev;
this.key=key;
this.next=next;
}
}