关于将两个链表与新链表合并以实现非递减问题的 C 数据结构

发布于 科技 2024-08-19
8个回答
  1. 匿名用户2024-02-01

    本来是下一台PC指向PA,但现在PC=PA,即PC也指向PA,即PC向后移动。

    PC 最初指向头节点,但后来被 PA 覆盖,请注意 PC 被 PA 覆盖,LA 始终指向头节点。

  2. 匿名用户2024-01-31

    LC是保存最终结果的链。 首先,PC指向LC的头节点(当然,它也被初始化为PA的头节点)。

    其实意思是一样的,我以它为例一步一步讲解:当 pa 的元素值小于(或等于)pb 的元素值时,让 pc 的指针字段指向 pa 的位置,然后 lc 链的长度就会增加 1, 并且效果会被反映出来,它会让PC指向LC链的最后一个节点(即pc=pa; 这样下次你得到一个值较小的节点时,你可以将该节点添加到LC的尾部(因为PC指向尾部,添加的节点是pc->next = pa; )。

    可以想象,如果没有和这两个语句,PC不是指向LC链的尾部,在向LC链添加节点时,必须从PC指向的位置添加,这样PC才会先断开与后面节点的连接,转而指向新节点, 导致PC后面的节点信息丢失,整个程序将失败。

  3. 匿名用户2024-01-30

    我也不明白......

    LZ需要。 我可以写一个链表合并。

  4. 匿名用户2024-01-29

    这也取决于问题的要求。

    最简单的方法是去掉链表 1 的尾部和链表 2 的头部。

    然后将链表 1 的头部连接在一起以制作新的标题,并将链表 2 的末尾连接在一起以制作新的标题。

  5. 匿名用户2024-01-28

    链表定义(百科全书):链表是物理存储单元上的一种非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接顺序实现的。 链表由一系列节点(链表中的每个元素称为节点)组成,这些节点可以在运行时动态生成。

    两部分?? 它应该引用两个链表,将两个链表合并为一个。

    链表的第一个节点称为头节点,最后一个节点称为尾节点(头节点和尾节点:真实或虚拟,具体取决于您的实现)。

    合并:这只是一个链表添加!! 具体实现:就是将链表2的所有实节点按顺序(从头节点到尾节点)逐个插入到链表1中,即可实现合并。

    Insert:Insert 具有直接函数调用。

  6. 匿名用户2024-01-27

    for(p=&(;p>=&(;p--)p+1)=p;最后一个 p 前面有一个星号,应更改为 for(p=&(; p>=&(;p--)p+1)=*p;

    然后,由于 b 的元素插入到 a 的 i 位置,我应该添加 1for (p=&(; p<=&(;p++)p-1)=*p;这里是覆盖 i+1 位置的元素,根据你写的初始条件,p 从一开始就已经指向了 i+1 位置,所以需要修改,并且随着修改的结束条件,最终修改是 for (p=&(; p<&(p++)p=*(p+1);

    其他一切都很好。

    ps,如果想让程序运行简单一点,建议你每次将一个B元素合并到A的时候都找一个A中的元素,但是程序会有点麻烦,另外,对于A的重复元素的自检,可以考虑写成if作为while,因为考虑到你可以平均连接三个以上的元素。

  7. 匿名用户2024-01-26

    首先,定义两个指向链表元素的指针,一个指向 A 中的元素,一个指向 B 中的元素;

    其次,取出这两个指针指向的元素的数据并比较大小:

    如果 a=b,则放弃,并且两个指针都向后移动一位;

    如果是 ab,则 b 插入到 olda 之后,b 向后移动一个位置。

    循环直到 a 和 b 的下一个为 null

    从算法上讲,复杂度应为 o(n)。

    您之前使用的算法的复杂度为 o(n 2),因为遍历集合并排序到嵌套循环中。

  8. 匿名用户2024-01-25

    1.你的算法不适合这个问题,这个想法不是创建一个新节点是使用原始空间,所以你 c=(elemtype*)malloc(sizeof(lnode)); 应该是多余的。

    2.您的算法正在更改为降序,因为 ab 是递增排序的,并且您每次将指针移动到序列的末尾进行比较和插入,这是一个单向链表,因此您的算法将非常低效。

    3.您需要做的就是将两个链表的节点按降序插入到新的链表中。

    4.例如,可以将 A 中的节点反转,然后将 B 中的节点按降序逐个插入到 A 中的适当位置,最后得到一个链表作为所需的 C 链表。

相关回答
8个回答2024-08-19

#include ""

#include "" >>>More

15个回答2024-08-19

福建枣数表:一种使用手势翻译语言痕迹的数据结构。

3个回答2024-08-19

1. C语言没有引用,可以使用常量指针模拟引用 void initlist(sqlist *l)。 >>>More

6个回答2024-08-19

这个问题很容易解决:

假设数据块是结构块,h 和 s 都是指针类型。 >>>More

8个回答2024-08-19

*以下程序是C语言中用于线性表合并操作的经典程序,您可以根据需要进行修改 >>>More