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

      链表是一种线性数据结构,使用它能动态的存储一种数据结构。链表是n个数据元素的有限序列,其元素需要自己定义,既可以是一个整数或一个字符串,也可以是一个复杂的记录类型。

      链表是一种重要的数据结构,该结构由节点组成。每个节点包含两部分数据,第一部分是节点本身的数据,第二部分是指向下一节点的指针。对于单向链表,链表中存在两个特殊的节点,分别为“头节点”和“尾节点”。头节点本身没有数据,只存储下一个节点的指针,尾节点只存储数据。

      下面给出一个简单的节点示例:

        public class ListNode
        {public ListNode Next;
            public int Value;
    
            public ListNode(int NewValue)
            {
                Value = NewValue;
            }
        }

      其中,私有Value用于存储节点本身的数据,Next用于存储下一个节点的指针,Previous用于存储上一个节点的指针。对于链表的操作,无非是进行节点的查找、插入和删除操作。

      1、查找节点

      在进行节点查找时,通常根据节点的数据查找节点。要实现节点的查找,首先需要解决的问题就是遍历链表中的所有节点。可以从链表头节点开始,利用循环的方式向下查找,如果当前节点指向的下一个节点不为空,则将下一个节点设置为当前节点。

      2、插入节点

      插入节点需要考虑两种情况。第一种情况是在链表尾节点处插入节点,这种情况比较简单,只要将当前尾节点的Next指向新插入的节点就可以了。第二种情况是在链表的中间位置插入节点,首先需要确定在哪个节点后插入节点。然后将当前节点的下一个节点设为要插入节点,然后将要插入节点的Next设为原来的下一个。

      3、删除节点

      删除节点与插入节点类似,也要考虑两种情况,删除尾节点是最简单的,找到尾节点之前的一个节点,将该节点指向的下一个节点设置为空,然后删除尾节点。第二种情况是删除中间节点,首先需要找到当前节点的前一个节点,并定义一个临时节点PriorNode进行记录,然后再定义一个临时节点TempNode记录当前节点的下一个节点,最后将PriorNode的下一个节点指向TempNode,并释放当前节点。

  • 相关阅读:
    Spring 定时器的使用
    spring MVC 资料
    Thrift入门及Java实例演示<转载备用>
    json数组转数组对象
    UiPath Outlook邮件正文引用图片
    UiPath 执行VBA代码Selection.Copy复制不生效
    RPA工程师学习路径是怎样的?企业面试开发者从哪些方面考察?
    一个RPA项目需要部署多少个机器人
    未来的企业软件和RPA
    RPA——被遮住的代码
  • 原文地址:https://www.cnblogs.com/kissdodog/p/3080953.html
Copyright © 2011-2022 走看看