unity3D技术分享首页推荐数据结构和算法分析

单链表复习

2017-11-03  本文已影响37人  小云海

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

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

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


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

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


插入节点(任意点插入)


删除任意节点


删除重复节点


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


计算链表长度


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


查询倒数第k个元素


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


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


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


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


链表输出


部分测试用例


程序全景


上一篇 下一篇

猜你喜欢

热点阅读