一、链表的初步认识:
从上一篇中,我们已经知道了顺序表,但是从顺序表的插入和删除来看,是比较麻烦的,时间复杂度为O(n),因此这里就有了另外一种结构:链表。链表就是逻辑结构上连续,但是物理结构上不一定连续。对于链表来说,一共有8种链表。
1 单向和双向的
在这其中,第一种是单向的,也是没有头结点的,就类似有傀儡节点;第二种是双向的,也是有类似的傀儡节点,但是要注意头和尾节点,中间的插入和删除需要注意。
2 带头或者不带头的
3 循环或者不循环的
分类别就是上面的三种类别,组合起来就是8种。
但是用的最多的还是:
无头单向非循环的链表,结构:
二:链表的实现
老规矩,咱就是说,直接上代码
首先是定义节点:
class LinkNode{
public int data;
public LinkNode next;
public LinkNode(int data){
this.data=data;
}
}
(1)addFirst