一、单链表的相关知识:
在链表之前,对于数据的群体存储一般采用的是数组来进行存储,数组是一种线性的结构,数组的优点就在于数组内所有的内容都是线性紧密分配的,通过下标就能很方便迅速的访问到我们要访问的指定元素。但是数组这种线性的特点也导致当数组需要添加元素的时候会很麻烦。首先由于数组长度已定,所以添加的时候有可能面临着数组长度不够的问题;另外由于数组每个元素之间紧密排布,所以如果想要插在指定位置增加元素的时候还会需要移动数组其他位置的大量元素。所以链式结构诞生了。
链表是一种链式存取的数据结构,单链表中的数据是以结点的形式存在,每一个结点是由数据元素和下一个结点的存储的位置组成。
通过观察上图,我们可以发现链式结构的特点,节点与节点之间通过引用的指向来互相连接。和数组相比再需要插数据的时候非常便捷,只要断开引用让其指向新节点,然后再让新节点的引用指向下一个节点。无需考虑长度以及其他元素。
但是链表通过引用关联而不是通过下标去关联内容,也会导致某些时候在元素的查找方面的效率不如数组。
二、单向链表代码:
class Singlelinkedlist<T>{
private Node<T> head;//头指针
class Node<T>{
private T data;//数据域
private Node<T> next;//指向下一个节点的引用域
public Node<T>(T data){
this.data=data;
}
}//表示节点的内部类
public void add