一个C语言问题,急求!用带辅助表元的有序整数链表表示整数集合,分别编写已知两个集合求集合和(S1=S1∪S2)、集合差(S1=S1-S2)、集合交(S1=S1∩S2)的函数.运算结果在链表S1.设S1={2,3,5,6},S2=

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 05:12:14

一个C语言问题,急求!用带辅助表元的有序整数链表表示整数集合,分别编写已知两个集合求集合和(S1=S1∪S2)、集合差(S1=S1-S2)、集合交(S1=S1∩S2)的函数.运算结果在链表S1.设S1={2,3,5,6},S2=
一个C语言问题,急求!
用带辅助表元的有序整数链表表示整数集合,分别编写已知两个集合求集合和(S1=S1∪S2)、集合差(S1=S1-S2)、集合交(S1=S1∩S2)的函数.运算结果在链表S1.
设S1={2,3,5,6},S2={3,4,6,8}.谢谢!

一个C语言问题,急求!用带辅助表元的有序整数链表表示整数集合,分别编写已知两个集合求集合和(S1=S1∪S2)、集合差(S1=S1-S2)、集合交(S1=S1∩S2)的函数.运算结果在链表S1.设S1={2,3,5,6},S2=
#include "stdio.h"
#include "malloc.h"
typedef int datatype;
typedef struct Node{
datatype data;
Node *next;
}Set;
bool IsInSet(Set *set,datatype data) {
Node *p = set->next;
while(p){
if(p->data == data) return true;
p = p->next;
}
return false;
}
void InsertElem(Set *set,datatype data) {
Node *p = (Node *) malloc (sizeof(Node));
p->data = data;
p->next = set->next;
set->next = p;
}
void Union(Set *set1,Set *set2){ /*求并集*/
Node *p = set2->next;
while(p){
if(!IsInSet(set1,p->data)) InsertElem(set1,p->data);
p = p->next;
}
}
void Intersect(Set *set1,Set *set2) { /*求交集*/
Node *pre = set1,*cur = pre->next;
while(cur) {
if(!IsInSet(set2,cur->data)){
pre->next = cur->next;
free(cur);
}
else pre = cur;
cur = pre->next;
}
}
void Comple(Set *set1,Set *set2) { /*S1 = S1 - S2*/
Node *pre = set1,*cur = pre->next;
while(cur) {
if(IsInSet(set2,cur->data)) {
pre->next = cur->next;
free(cur);
}
else pre = cur;
cur = pre->next;
}
}
void CreateSet(Set *set,datatype endtag) {
Node *newNode;
datatype data;
scanf("%d",&data);
while(data != endtag) {
newNode = (Node*) malloc (sizeof(Node));
newNode->data = data;
newNode->next = set->next;
set->next = newNode;
scanf("%d",&data);
}
}
void ClearSet(Set *set) {
Node *p;
while(set->next) {
p = set->next;
set->next = p->next;
free(p);
}
}
void Display(Set *set) {
Node *p = set->next;
while(p) {
printf("%d\t",p->data);
p = p->next;
}
}
void main( ){
Set *set1,*set2,endtag;
set1 = (Node*) malloc (sizeof(Node));
set1->next = NULL;
set2 = (Node*) malloc (sizeof(Node));
set2->next = NULL;
printf("请设置链表输入结束标识:");
scanf("%d",&endtag);
CreateSet(set1,endtag);
CreateSet(set2,endtag);
Union(set1,set2);
Display(set1);
ClearSet(set1);
ClearSet(set2);
CreateSet(set1);
CreateSet(set2);
Intersect(set1,set2);(
Display(set1);
ClearSet(set1);
ClearSet(set2);
CreateSet(set1);
CreateSet(set2);
Comple(set1,set2);
Display(set1);
}

一个C语言问题,急求!用带辅助表元的有序整数链表表示整数集合,分别编写已知两个集合求集合和(S1=S1∪S2)、集合差(S1=S1-S2)、集合交(S1=S1∩S2)的函数.运算结果在链表S1.设S1={2,3,5,6},S2= 急求 约瑟夫C语言的问题 设A和B是两个单链表其表中元素递增有序试写一算法将A和B归并成一个按元素值递减有序的单链表C并要求辅助空间为O(1) C语言编程:有序数列的数据插入问题.将一个数插入到已有10个整数的有序数列中,数据插入之后,数列仍然有序.原有数据既可以初始方法获得,也可以通过键盘输入. 有一个数组判断最小值以后的数据是否为递增有序(采用函数形式,用下标法)c语言编程 vc++6.0运行 请用C语言编程实现 1.已知线性表LA和LB中的数据元素按值非递增有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递增有序排列.例如,设LA=(3,5,8,11)LB=(2,6,8,9,11,15,20)则L 急求归并排序算法:将有序数组A[0,… ,n]和B[0 ,… ,m]合并(C语言)数据结构C语言版 C语言数字全排列的问题(急!)求C代码和算法【问题描述】输入整数N( 1 物理问题,请用简明扼要的语言叙述“磁分子模型假说”的内容,最好有图辅助说明.谢谢 c/c++ c语言问题;编写一个函数:求平面上给定两点间的距离 急求!利用循环语句编写:对一个正整数,将各位数字反序后的数组成一个整数输出.用C语言循环语句编程.急求! 解释成语中带括号的字(急求)(井)然有序:忠于职(守):还有盘诘的近义词! 一个C语言计算问题 急求一个C语言程序..用递推法求100以内的奇数之和 急求!高中英语课文原文,在线等外研版高中英语必修4Module4的课文原文,明天要背诵忘了带书,求辅助! 用c++实现,假设有两个元素递增的有序排列线性表A和B,均以顺序表作存储结构.试编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序)允许值相同排列的线性表C,并要求按原表的 求一道三个数相加的题?用C语言写的?急、急… 输入一个正边形的边长,求该正方形内切圆的面积.(n=3.14)用C语言编写 最好带流程图