什么是链表
是一种线性表,但不按线性顺序存储数据
链表对于数组最大的好处:它可以将数据分散存储在内存中,达到内存最大利用率
单向链表
节点
链表中的每个元素我们称为节点。节点由两部分组成
节点内容
下一个节点地址
最后一个节点存储地址的部分值。单向链表只能一个方向遍历。插入只能在链表头插入,只需将当前插入的节点设为头节点,next指向原头节点即可。删除只需将删除节点的上一个节点指向下一个节点即可
代码实现
public class singlelinkedList{
private int size;//链表节点个数
private Node head;//链表节点个数
public SingleLinkedList(){
size =0;
head=null;
}
//链表的每个节点类
private class Node{
private Object data;//每个节点的数据
private Node next;//每个节点指向下一个节点的连接
public Node(Object data){
this.data=data;
}
}
//添加元素
public Object addHead(Object obj){
Node newHead=new Node(obj);
if(size=0){
head=newHead;
}else{
newHead.next=head;
head=newHead;
}
size++;
return obj;
}
//删除元素
public Object deleteHead{
Obiect obj=head.data;
head=head.next;
size--;
return obj;
}