将一个链表复制到另一个链表 C++

亚历克斯

我试图将 1 个列表复制到另一个列表,但它只复制第一个元素。当我调试它时,它在突出显示的行上向我显示了错误。你能帮我解决这个错误并向我解释发生了什么问题吗?

struct List1 {
    int data;
    List* next;
};

struct List3 {
    int data3;
    List3* next3;
};

void copyList(){
    if(p==NULL) cout<<"Lista este vida\n";
    else
    {
        c=p;
        List3* x = new List3;
        while(c!=NULL)
        {
            ***x->data3 = c->data;***
            cout<<x->data3<<" ";
            c=c->next;
            x=x->next3;
        }
    }
    cout <<"\nList has been copied successful\n";
}
雷米勒博

您只List3x列表分配了 1 个节点

在第一次循环迭代中,x指向一个有效List3实例。但是你没有初始化它的next3成员。所以在下一次循环迭代中, 的值x变为不确定,它不是指向有效内存。

您需要为要复制的每个分配一个单独的节点例如:

void copyList()
{
    if (p == NULL)
        cout << "Lista este vida\n";
    else
    {
        List1 *c = p;
        List3* x = NULL;
        List3** px = &x;

        do
        {
            *px = new List3;
            (*px)->data3 = c->data;
            (*px)->next3 = NULL;

            cout << (*px)->data3 << " ";

            px = &((*px)->next3);
            c = c->next;
        }
        while (c != NULL);

        // use x as needed. don't forget to delete all
        // of the nodes when you are done using them!

        cout << "\nList has been copied successful\n";
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将引用类型从一个C#复制到另一个C#

C ++:将一个对象复制到构造函数中的另一个对象

在C中以相反的顺序将字节从一个文件复制到另一个文件

C-使用指针将一个char数组的内容复制到另一个

C# 将多个 XMLNodes 或 XMLNodeList 从一个 XMLDocument 复制到另一个

使用C ++将文件从一个目录复制到另一个目录

使用 C++ 将文件内容复制到另一个文件

仅将向量中的字母复制到C ++中的另一个向量

将DataTable列的值复制到另一个DataTable行C#

C#将ListBox.SelectedItems复制到另一个变量

C编程-将文件复制到另一个

通过转换将C ++向量复制到另一个向量的最佳方法

C#将画布的所有子代复制到另一个画布

C#-将ContextMenuStrip项复制到另一个

将const uint *的值复制到C ++中的另一个变量

目标-c:将目录复制到另一个

目标C将数组复制到另一个索引为1的数组

将部分纹理复制到另一个纹理OpenGL 4.6 C++

如何创建链表到C中另一个地址的副本?

用C语言从另一个链表中填充空链表

C#将最后一个文件从一个文件夹复制到另一个生成的文件夹

C 语言:将数据从一个 typedef 结构复制到另一个并返回一个值

在C ++复制构造函数中将值从一个void **复制到另一个void **

将链表基本复制到另一个链表

如何在C编程中将一个数组复制到另一个数组

如何在C ++中将指向一个类的指针复制到另一个类中?

将未排序的C数组复制到另一个数组中,同时避免重复

将指针数组值复制到C中另一个数组的末尾

将所有数组元素复制到C中的另一个数组中