线性表中有关链表的合并

如何从两个文本文件txt 中提取数据存入链表并合并成一个没有重复的数据的表

代码如下:

#include <iostream>
#include <fstream>
using namespace std;

typedef struct _node 
{
    int data;
    struct _node* next;
}LNode,*LinkList;

//初始化链表
void InitList(LinkList* head)
{
    (*head) = new LNode;
    (*head)->next = NULL;
}

//读取文件并创建链表
void CreateList(LinkList head,const char* filename)
{
    ifstream infile(filename);
    LinkList t,q;
    if(!infile.is_open())
    {
        cout << filename <<"文件打开失败!"<<endl;
        return ;
    }

    

    //读文件
    while(!infile.eof())
    {
        q = new LNode;
        q->next = NULL;
        infile >> q->data;
        //将q插入到链表中的合适位置,从小到大排序
        t = head;
        while(t->next!= NULL && t->next->data < q->data)
            t = t->next;
        
        q->next = t->next;
        t->next = q;
    }
    infile.close();

}



//显示链表
void PrintList(LinkList head)
{
    LinkList p = head->next;
    while(p)
    {
        cout << p->data<<" ";
        p = p->next;
    }
    cout << endl;
}

//合并链表,将h2合并到h1
void MergeList(LinkList h1,LinkList h2)
{
    LinkList p1,p2,p3;
    p1 = h1->next;
    p2 = h2->next;
    p3 = h1;
    while(p1 && p2)
    {
        if(p1->data < p2->data)
        {
            p3->next = p1;
            p3 = p1;
            p1 = p1->next;
        }else
        {
            p3->next = p2;
            p3 = p2;
            p2 = p2->next;
        }
    }
    //将剩余部分合并
    if(p1)
        p3->next = p1;
    if(p2)
        p3->next = p2;
}

int main()
{
    LinkList h1,h2;
    InitList(&h1);
    InitList(&h2);
    CreateList(h1,"a.txt");
    CreateList(h2,"b.txt");
    cout <<"链表1:"<<endl;
    PrintList(h1);
    cout <<"链表2:"<<endl;
    PrintList(h2);

    cout <<"链表2合并到链表1:"<<endl;
    MergeList(h1,h2);
    PrintList(h1);

    //释放内存
    delete(h2); h2 = 0;
    LinkList t;
    while(h1)
    {
        t = h1->next;
        delete h1;
        h1 = t;
    }
    h1 = 0;
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^