用c语言实现交并差算法,C语言实现集合的交,并,差

本文介绍了如何使用C语言实现集合的交、并、差运算。通过有序链表表示集合,包括初始化、插入、打印等操作,并提供了具体的函数实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言实现集合的交,并,差

作者:Raining_C      来源:http://blog.csdn.net/Raining_CN

【问题描述】

编制一个能演示执行集合的并、交和差运算的程序

【基本要求】

(1)集合的元素限定为小写字母字符[ 'a'......'z' ]

(2 )演示程序以用户和计算机对话的方式执行

【测试数据】

【实现提示】

以有序链表表示集合

【代码过程】

1。先定义 集合的数据类型 notes.h

//notes.h

typedef struct LNode...{

ElemType    data;

LNode        *next;

}*Link, *Position;

typedef struct...{

Link    head,tail;

int        len;

}LinkSet;

//~

2。以后要用的一些常量放在   constValues.h

#include

#include

#include

//函数结果状态代码

#define    TRUE    1

#define    FALSE    0

#define    OK        1

#define    ERROR    0

#define    INFEASIBLE    -1

#define OVERFLOW    -2

#define ElemType        int        //存放数据的类型

typedef int    Status;                //函数的返回值

//~

3。集合实现函数   setsFun.h

/**//****************** 函数定义 *********************/

Status InitSets(LinkSet &ls)...{

//初始化 集合

ls.head = (Link) malloc( sizeof(Link));

ls.tail = (Link) malloc( sizeof(Link));

if(!ls.head || !ls.tail) exit(OVERFLOW);    //如果分配失败

ls.head->next = ls.tail->next =    NULL;        //头、尾指针为空

ls.len = 0;                                    //长度为0

return OK;

}

Status CreateNode(Link &link,ElemType e)...{

//创建一节点,内容为e

link = (Link) malloc( sizeof(Link));

if(!link)    exit(OVERFLOW);

link->data = e;                                //值设定

link->next = NULL;                            //指向空

return OK;

}

Position PriorInsertNode(LinkSet &ls,Link &link)...{

//找出节点link要插入到ls的前一个节点

if(!ls.head->next) return ls.head;

Link h1 = ls.head->next, h2 = h1->next;            //h1:前一节点,h2:前一节点的后一节点

if(link->data < h1->data) return ls.head;        //如果比第一个节点小,返回头指针

while(h1 && h2)...{

if(h1->data < (link->data) && h2->data > (link->data) )    //如果>h1  &&

break;

if(h1->data == (link->data) || h2->data ==(link->data) )

return NULL;    &n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值