最近闲来无事,将之前用c语言实现的链表改用Java实现了一下,一直没时间整理,今天整理一下发出来,大家共同学习。
首先,链表作为最基本的数据结构,在程序设计中作用非常显著,其存储特点如下:可以用任意一组存储单元来存储单链表中的数据元素(可非连续),而且,除了存储每个元素的值外,还必须存储指示后继元素的信息。这俩部分组成的存储映像称为节点,多个节点连接在一起成为链表。当节点只包含后继节点的信息,则这种链表称单链表。
根据以上要素,我建立简单的节点如下:
然后进行一些简单的链表操作,包括但不限于 插入节点,删除任意节点,删除重复节点,计算链表长度,链表排序,查询倒数第k个元素,链表反转,从未到头输出链表,查询链表中间元素,判断链表是否有环 等。
插入节点(直接插入到链表尾部)
插入节点(任意点插入)
删除任意节点
删除重复节点
删除重复节点(错误的代码设计)
计算链表长度
链表排序(这里使用选择排序)
查询倒数第k个元素
链表反转(这里非递归实现)
从尾到头输出链表(递归实现;对比上面的链表反转)
查询链表中间节点(快慢指针)
判断链表有环(快慢指针,有兴趣可以定位环位置)
链表输出
部分测试用例
程序全景
网友评论