已知集合A和B的元素分别用不含头结点的单链表存储, 求解集合A与B的差集,并将结果保存在集合A的单链表中
来源:互联网 发布:华为紧急数据怎么处理 编辑:程序博客网 时间:2024/06/05 16:42
1.【附加题】–已知集合A和B的元素分别用不含头结点的单链表存储,
函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。
例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。
链表结点的结构类型定义如下:
struct node
{
int elem;
node* next;
};
请完成函数void difference(node** LA , node* LB);
#include<iostream>using namespace std;typedef struct Node{ int elem; Node* next; Node(const int x) :elem(x) ,next(NULL) {}}Node;void difference(Node*& LA,Node*& LB){ //1.两个链表有一个为空,不用求差集 if (LA==NULL||LB==NULL) { return; } //2.两个链表都不为为空 else { Node* cur=LA; Node* cur1=LB; Node* del=NULL; Node* delnext=NULL; Node* prev=NULL; while (cur&&cur1) { while(cur1) { if (cur->elem==cur1->elem) { if (cur->next==NULL) { del=cur; cur=NULL; //删除只有一个结点的链表的第一个结点 if (prev==NULL) { LA=NULL; } else { prev->next=NULL; } } else { del=cur->next; delnext=del->next; std::swap(cur->elem,del->elem); cur->next=delnext; } break; } cur1=cur1->next; } prev=cur; if (del!=NULL) { delete del; del=NULL; } else { cur=cur->next; } cur1=LB; } }}Node* CreatLinkList(int* arr,int sz){ Node* PHead=new Node(arr[0]); Node* cur=PHead; for (int i=1;i<sz;i++) { cur->next=new Node(arr[i]); cur=cur->next; } return PHead;}void Printf(Node* LA){ if (LA==NULL) { return; } else { Node* cur=LA; while (cur) { cout<<cur->elem<<"->"; cur=cur->next; } }}int main(){ int A[]={5,10,20,15,25,30,66,99,23,77}; int B[]={5,15,35,25,77,65,54,66}; int sz1=sizeof(A)/sizeof(A[0]); int sz2=sizeof(B)/sizeof(B[0]); Node* LA=CreatLinkList(A,sz1); Node* LB=CreatLinkList(B,sz2); difference(LA,LB); Printf(LA); return 0;}
阅读全文
0 0
- 已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中
- 已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。
- 链表--已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。
- 已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中
- 已知集合A和B的元素分别用不含头结点的单链表存储, 求解集合A与B的差集,并将结果保存在集合A的单链表中
- 已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。
- 已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={
- 求差集:已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集
- 已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和B的差集(即仅由在A中出现而不在B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。
- 求解集合A和集合B的差集
- 求解集合A与B的差集
- 求解集合A与B的差集
- 集合A与B的差集
- [经典面试题]求解集合A与B的差集
- 求集合{a}+集合{b}的并集
- 创建集合A,集合B。求表达式(A-B)U(B-A)的值。
- HLG 1710 给出三个集合a,b,c,统计集合a元素+集合b中元素=集合c中的元素的个数 (基础题)
- A、B两个整数集合的交集
- 怎样查看本机外网ip
- sqlite3数据库命令
- 怎么打开VisualSVN图形化管理界面
- 使用Jenkins进行Android自动打包
- tensorflow之路-如何处理原始文本数据
- 已知集合A和B的元素分别用不含头结点的单链表存储, 求解集合A与B的差集,并将结果保存在集合A的单链表中
- JAVA学习笔记
- 使用javaNIO实现C/S模式的通信
- 【Bmob】Bemob对后台数据的增删改
- Zlib压缩库压缩比率和压缩性能测试 (1)
- RHEL7.2和RHEL6.5配置网络yum源和本地yum源
- 浅谈引用<二> Java中引用的分类
- Android WebView调试利器之 Chrome DevTools
- 10032---Redis中bitmap的妙用