如何将链表赋值
来源:网络收集 点击: 时间:2024-04-15【导读】:
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,那么该如果给链表赋值呢?方法/步骤1/6分步阅读
2/6
3/6
4/6
5/6
6/6
链表
链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域,赋值方法有很多种

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

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

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

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

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

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_515710.html
上一篇:怎样画简笔画站在树枝上的鹦鹉?
下一篇:丝巾玫瑰花的系法