单向链表
思想:单向链表--------有一个头节点(head)(包含下一个节点的引用next),通过引用实现了节点之间的相关联,形成了一个链表
private node head ;
//查询
public Object get(int index) {
node temp = head.getNext() ;
if(index<0){
return "error";
}
for (int i = 1; i <index; i++) {
temp = temp.getNext();
}
return temp.getData();
}
//添加
public void add(node node){
if(head == null){
head=new node();
}
node temp = head;
while (temp.getNext()!=null){
temp = temp.getNext();
}
temp.setNext(node);
}
//测试
public static void main(String[] sad){
LinkedList linkedList = new LinkedList();
linkedList.add("qwe");
linkedList.get(0);
System.out.println(linkedList);
singlelinkedlist singlelinkedlist =new singlelinkedlist();
node de = new node();
de.setData("123");
node de1 = new node();
de1.setData("1234");
node de2 = new node();
de2.setData("12345");
node de3 = new node();
de3.setData("123456");
node de4 = new node();
de4.setData("1234567");
node de5 = new node();
de5.setData("12345678");
singlelinkedlist.add(de);
singlelinkedlist.add(de1);
singlelinkedlist.add(de2);
singlelinkedlist.add(de3);
singlelinkedlist.add(de4);
singlelinkedlist.add(de5);
singlelinkedlist.get(4);
}
双向链表
思想:双向链表--------有一个头节点(head)(包含下一个节点的引用next,包含前一个节点(tail)的引用pre)
有一个尾节点(tail)(包含下一个节点(head)的引用next,包含前一个节点的引用pre)
private node head;
private node last;
//添加
public void add(node de){
if(head == null){
head=new node();
last=new node();
}
node temp = head;
node temp1 = last;
while (temp.getNext()!=null){
temp = temp.getNext();
}
temp.setNext(de);
de.setPre(temp);
de.setNext(temp1 );
//另一种实现方式
//node newNode = new node();
//if (head == null) {
// head = newNode;
// last = newNode;
// return;
//}
//
//node tailTmp = last;
//tailTmp.setNext(newNode);
//newNode.setPre( tailTmp);
//last = newNode;
}
//测试
public static void main(String[] sad){
dubbolianbiao biao =new dubbolianbiao();
node de = new node();
de.setData("123");
node de1 = new node();
de1.setData("1234");
node de2 = new node();
de2.setData("12345");
node de3 = new node();
de3.setData("123456");
node de4 = new node();
de4.setData("1234567");
node de5 = new node();
de5.setData("12345678");
biao.add(de);
biao.add(de1);
biao.add(de2);
biao.add(de3);
biao.add(de4);
biao.add(de5);
// biao.get(4);
}