单链表复习

作者: 小云海 | 来源:发表于2017-11-03 17:41 被阅读37次

    最近闲来无事,将之前用c语言实现的链表改用Java实现了一下,一直没时间整理,今天整理一下发出来,大家共同学习。

    首先,链表作为最基本的数据结构,在程序设计中作用非常显著,其存储特点如下:可以用任意一组存储单元来存储单链表中的数据元素(可非连续),而且,除了存储每个元素的值外,还必须存储指示后继元素的信息。这俩部分组成的存储映像称为节点,多个节点连接在一起成为链表。当节点只包含后继节点的信息,则这种链表称单链表。

    根据以上要素,我建立简单的节点如下:


    然后进行一些简单的链表操作,包括但不限于 插入节点,删除任意节点,删除重复节点,计算链表长度,链表排序,查询倒数第k个元素,链表反转,从未到头输出链表,查询链表中间元素,判断链表是否有环 等。

    插入节点(直接插入到链表尾部)


    插入节点(任意点插入)


    删除任意节点


    删除重复节点


    删除重复节点(错误的代码设计)


    计算链表长度


    链表排序(这里使用选择排序)


    查询倒数第k个元素


    链表反转(这里非递归实现)


    从尾到头输出链表(递归实现;对比上面的链表反转)


    查询链表中间节点(快慢指针)


    判断链表有环(快慢指针,有兴趣可以定位环位置)


    链表输出


    部分测试用例


    程序全景


    相关文章

      网友评论

        本文标题:单链表复习

        本文链接:https://www.haomeiwen.com/subject/vnwszttx.html