OpenJudge

1:集合的交运算(单链表)

总时间限制:
1000ms
内存限制:
65536kB
描述

利用两个单链表LA和LB分别表示两个集合A和B(即线性表中的数据元素即为集合中的成员),要求一个新的集合A=A

∩B。这就要求对链表作如下操作:将存在于表LA中,同时又存在于LB中的数据元素保留,将LA中其他元素删除。

例如:输入8个整数:3 6 7 12 14 8 9 2,建立链表LA;再输入10个整数:8 9 5 21 22 18 29 25 80 12,建立链表LB;则做集合的交运算后,LA变为:12 8 9

   要求:必须使用链表,程序中必须有链表的相关操作:初始化、插入、删除、输出链表中元素、销毁。不满足要求的程序即使通过,也会算作0分。



输入
输入包含3行:
第一行是两个整数n和m(1 <= n,m <= 200),用空格分隔,分别代表集合A和B的元素个数。
第二行包含n个整数。每个整数之间用空格分隔;每个整数的取值在32位有符号整数范围以内。代表集合A的元素。
第三行包含m个整数。每个整数之间用空格分隔;每个整数的取值在32位有符号整数范围以内。代表集合B的元素。
输出
输出只有1行:
按输入时的顺序输出交集中元素的值,每元素之间用空格分隔。
样例输入
8 10
3 6 7 12 14 8 9 2
8 9 5 21 22 14 29 25 80 12
样例输出
9 8 12
提示
集合中不允许有重复元素。可以用带头结点单链表,类型定义参考教材37页。
全局题号
13671
添加于
2018-03-12
提交次数
84
尝试人数
24
通过人数
14