如何从两个文本文件txt 中提取数据存入链表并合并成一个没有重复的数据的表
3条回答 默认 最新
- 技术专家团-小桥流水 2022-10-04 08:57关注
代码如下:
#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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 三种调度算法报错 采用的你的方案
- ¥15 关于#python#的问题,请各位专家解答!
- ¥15 对于这个问题的解释说明
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败