package fsdf;
public class g1{
public static void main (String []args) {
doublelinkedlist dll =new doublelinkedlist();
dll.add(new node(1," “, “sd”));
dll.add(new node(2,” “, “sdd”));
dll.add(new node(3,” “, “sddd”));
dll.delete(2);
System.out.println(dll.traversal(2).nickname);
}
}
class doublelinkedlist{
private node head =new node(0,”",""); //初始化头结点
public node get_head() {
return head;
}
doublelinkedlist(){
}
//增加节点
public void add (node node1) {
node temp = head;
while(temp.next != null) {
temp =temp.next ;
}
temp.next = node1;
node1.pre = temp;
node1.next = null;
}
//删除第index个节点
public void delete (int index) {
node temp = head;
index–;
while (temp.next != null) {
//指向所删除节点的前驱结点
if(index <= 0) {
break;
}
temp =temp.next;
index–;
}
if(temp.next == null)
return;
if(temp.next.next == null) {
//所删除节点为最后一个节点
temp.next = null;
return;
}else {
node i = temp.next.next;
temp.next =i ;
i.pre =temp;
}
}
//查询 返回第index个节点
public node traversal(int index) {
if(head.next == null) {
System.out.println("链表为空");
return null;
}
node temp = head;
while(true) {
if(temp.next == null) {
System.out.println("所查询节点超出范围");
return null;
}
temp = temp.next;
index--;
if(index == 0)
break;
}
return temp;
}
}
class node{
public int no;
public String name;
public String nickname;
public node next; //指向下一节点
public node pre; //指向前一节点
public node (int no, String name,String nickname) {
this.no = no;
this.name = name;
this.nickname = nickname;
}
public String toString () {
return “no:”+no+“name:”+name+“nickname”+nickname;
}
}