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

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->

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值