广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    如何将链表赋值

    来源:网络收集  点击:  时间:2024-04-15
    【导读】:
    链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,那么该如果给链表赋值呢?方法/步骤1/6分步阅读

    链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域,赋值方法有很多种

    2/6

    为方便说明,这里以一个复杂链表作为前提,其中每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中任意一个节点,另外仅做解法的简单说明

    3/6

    解法一:时间复杂度为O(N2)的算法,将整个复制过程分为两步:第一步复制原始链表上的每一个节点,并用m_pNext链接起来;第二步是设置m_pSibling指针,此解法时间主要花费在定位结点的m_pSibling上

    4/6

    解法二:空间换时间的解法,第一步仍然是复制原始链表上的每一个节点,并用m_pNext链接起来,同时把N,N的配对信息放到一个哈希表中;第二步还是设置m_pSibling指针

    5/6

    解法三:无需辅助空间,时间复杂度为O(N)的解法,第一步仍然根据原始链表中的每个结点N创建对应的节点N,同时把N链接在N的后面;第二步设置复制出来的结点的m_pSibling指针

    6/6

    第三步把这个长链表拆分成两个链表:将奇数位置的结点链接起来就是原始链表,将偶数位置的结点链接起来就是复制的链表,最后将以上三步合起来

    链表
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_515710.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 06:38:55  耗时:0.029
    0.0289s