数据结构--C语言链表实现集合的(并,交,差)运算!
数据结构--C语言链表实现集合的(并,交,差)运算!
老规矩,上效果图:
要求:
从程序完善性上考虑,集合元素输入时,要有检查元素重复的功能,每个集合中不允许有重复的元素。集合可以用数组也可以用链表存储。
实现交、并、差运算时,分别把代码写成函数的形式,即实现交运算的函数,实现并运算的函数,实现差运算的函数,在主函数中分别调用三个函数。
使用菜单形式对应各个操作,应允许用户反复查看结果,想结束程序时,输入负数结束,使其编成一个完整的小软件。菜单参考示例如下:
1—输入集合A和B
2—求集合A交B
3—求集合A并B
4—求集合A-B
退出,输入一个负数!
验收/测试用例:
输入: A={1,2,3,4,5}
B={3,4,5,6,7}
要注意输入的过程中,每输入一个元素都要检查输入的这个元素是否和前面的元素重复,如果重复,要求用户重新输入当前元素。
验收测试时要测试这种重复的情况。
输出 A交B={3, 4, 5}
A并B={1,2,3,4,5,6,7}
A-B={1, 2}
代码如下:
#include
#include
#define ERROR -1
//创建结构体
typedef struct Node{
int data;
struct Node *next; //指向下一个指针
}Node,*Link; //typedef 起别名 ,结尾有分号
/* //上面的同这个
struct node{
int data;
struct node *next; //指向下一个指针
};
typedef struct Node Node; //为 struct Node类型起别名Node
typedef struct Node *Link; //为struct Node 指针类型起别名Link
*/
//菜单
void show (){
printf("\t\t--------------集合运算--------------\n");
printf("\n");
printf("\t\t\t 1---输入集合A和B\n");
printf("\t\t\t 2---求集合A交B\n");
printf("\t\t\t 3---求集合A并B\n");
printf("\t\t\t 4---求集合A-B\n");
printf("\t\t\t 退出,输入一个负数!");
printf("\n");<
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/108018.html