数据结构-----链表的实现

单链表

    1,链表存储特点

      ① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)
      ② 链表中结点的逻辑次序和物理次序不一定相同。

    2,线性表的单链表存储结构如:

    3,链表建立方法(时间复杂度为O(n))

      头插入法:s->data=d;s->next=head;head=s(head头指针,s新建节点)

       尾插入法:s->data=d;r->next=s;r=s;(r尾节点)

      带头结点及作用:

         1,由于开始结点的位置被存放在头结点的指针域中,所以在链表的第一个位置上的操作就和在表的其它位置上操作一致,无须进行特殊处理;

        2,无论链表是否为空,其头指针都是指向头结点的非空指针(空表中头结点的指针域空),因此空表和非空表的处理也就统一了。

      单链表常用操作:

        1,查询 时间复杂度为O(n)

        2,插入:往节点p后插入:s->data=x;s->next=p->next;p->next=s;仅仅插入时间复杂度为O(1)

        3,删除:删除r之后的节点:p=r->next;r->next=p->next;free(p)仅仅删除时间复杂度为O(1)

单链表的Java实现:

 View Code

    参考资料:

      1,数据结构概念

      2,数据结构Java单链表的简单实现

原文地址:https://www.cnblogs.com/xieyulin/p/7061191.html