zoukankan      html  css  js  c++  java
  • java单链表

    单链表

    一、单链表的概念

          链表是最基本的数据结构,其存储的你原理图如下图所示

              

          上面展示的是一个单链表的存储原理图,简单易懂,head为头节点,他不存放任何的数据,只是充当一个指向链表中真正存放数据的第一个节点的作用,而每个节点中都有一个next引用,指向下一个节点,就这样一节一节往下面记录,直到最后一个节点,其中的next指向null。

          链表有很多种,比如单链表,双链表等等。我们就对单链表进行学习,其他的懂了原理其实是一样的。

    二、用java实现单链表

          语言只是一种工具,数据结构真正体会的是那种思想,这句话确实是这样,不管用什么写,其思想是不改变的。以前使用的是C++,现在用的是java,一步步来实现。

          2.1、编写一个Node类来充当结点的模型。我们知道,其中有两个属性,1存放数据的data,2存放下一结点的引用,

              

     View Code

          2.2、单链表的简单操作(增加,删除,获取总长度,链表元素排序,链表遍历)  

                

             2.2.1、增加结点操作,addNode(Node)

                 

               想法:    一开始也会想如果什么结点也没有。是不是需要判断插入的是第一个结点的问题,但写完后发现没有必要,是不是第一个结点操作都是一样的,所以通过移动的指针遍历整个链表,找到最后一个结点,往后添加即可。没难度。      

     View Code

             2.2.2、插入结点到链表的指定位置。 insertNodeByIndex(int index,Node node)

                  

                注意:要知道插入操作需要的前提是什么,你才好写代码,写完之后,考虑如果在特殊位置上插入,是否也一样。还有需要进行插入位置是否可行的判断。

     View Code

             2.2.3、删除指定位置上的结点  delNodeByIndex(int index)

                  

     View Code

              2.2.4、单链表进行选择排序  selectSortNode()  

                    前提要知道什么是选择排序,如果不会,请查看我讲解排序的文章

                  

                  分析

                  

     View Code

              2.2.5、单链表进行插入排序  insertSortNode()

                  前提:要知道什么是插入排序。这个使用插入排序写了我好久,懵逼一样的状态,并且我认为我自己写效率不是很高。不管怎样,是骡子是马拿出来溜溜

                  

                  

     View Code

        

              2.2.6、当然还可以使用冒泡排序、归并排序,等等等,都可以自己去尝试,我就不写了。如果不懂这些排序,那么就看我写排序的文章把。

              2.2.7、计算单链表的长度

                  

     View Code

              2.2.8、遍历单链表,打印data

                   

  • 相关阅读:
    SharePoint 2013 图文开发系列之自定义字段
    SharePoint 2013 图文开发系列之Visual Studio 创建母版页
    SharePoint 2013 图文开发系列之代码定义列表
    SharePoint 2013 图文开发系列之计时器任务
    SharePoint 2013 图文开发系列之应用程序页
    SharePoint 2013 图文开发系列之事件接收器
    SharePoint 2013 图文开发系列之可视化WebPart
    SharePoint 2013 图文开发系列之WebPart
    SharePoint 2013 对二进制大型对象(BLOB)进行爬网
    SharePoint 2013 状态机工作流之日常报销示例
  • 原文地址:https://www.cnblogs.com/wangchaoyu/p/8780106.html
Copyright © 2011-2022 走看看