Java集合并交差运算.docx

上传人:Che****ry 文档编号:4550801 上传时间:2021-09-29 格式:DOCX 页数:7 大小:39.45KB
返回 下载 相关 举报
Java集合并交差运算.docx_第1页
第1页 / 共7页
Java集合并交差运算.docx_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《Java集合并交差运算.docx》由会员分享,可在线阅读,更多相关《Java集合并交差运算.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品word 可编辑资料 - - - - - - - - - - - - -一、题目要求:用 Java 语言实现单链表的基本操作,并实现集合的交、并和差运算;二、程序功能定义:1、输出两个集合的交集,即找出两个集合的相同元素;2、输出两个集合的并集,即把两个集合的全部元素不重复的加起来;3、输出两个集合的差集,即从一个集合中找出另一个集合里没有的元素;三、设计思路:程序 1: 单链表结点public class Node/单链表结点类,T 指定结点的元素类型public T data;/数据域,储存数据元素public Node next;/ 地址域,引用后继结点public Node(T d

2、ata, Node next)/构造结点, data 指定数据元素, next 指定后继结点this.data = data; this.next = next;public Node()this(null, null);程序 2:import java.util.ArrayList; public class SinglyList第 1 页,共 7 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -public Node head; public int length;/以上为默认构造方法,构造空单链表public stat

3、ic ArrayList union=new ArrayList(); public SinglyList()this.head = new Node();/以上为构造单链表public SinglyList(T element)this();/创建空单链表,只有头结点 this.length = element.length;Node rear = this.head;/rear 指向单链表最终一个结点for (int i = 0; i element.length; i+)/如 element=null ,跑出空对象反常;element.length=0 时,构造空链表rear.next

4、= new Node(elementi, null);/ 创建结点链入rear 结点之后rear = rear.next;/rear 指向性的链尾结点public String toString()String str = (;Node p = this.head.next; while (p .= null)str += p.data.toString(); if (p.next .= null)第 2 页,共 7 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -str += ,;/ 不是最终一个结点时,后加分隔符 p =

5、 p.next;return str + );/ 空表返回 ()public String addAll(SinglyList list)Node p = this.head.next; String str = (;while (p .= null)Node q = list.head.next; while (q .= null)if ( p.data.toString().equals(q.data.toString()/集合的元素值相等if (.str.equals()str += ,;/ 用逗号间隔str += p.data.toString(); this.union.add(p.

6、data.toString() ;q = q.next;p = p.next;第 3 页,共 7 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -return str + );/以上为求交集过程;public String union(SinglyList list)Node p = this.head.next; String str = (;while (p .= null)Node q = list.head.next; int i = 0;while (q .= null)if (.p.data.toString()

7、.equals(q.data.toString()i+;if (i = list.length)for(int a=0;aunion.size();a+)if( .p.data.toString().equals(union.get(a)&a=union.size()-1)if (.str.equals() str += ,; str += p.data.toString();q = q.next;第 4 页,共 7 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -p = p.next; i = 0;Node w = lis

8、t.head.next; while (w .= null)str += ,;str += w.data.toString(); w = w.next;return str + );/以上为求并集过程;public String difference(SinglyList list)Node p = this.head.next; String str = (;while (p .= null)Node q = list.head.next; int i = 0;while (q .= null)if ( .p.data.toString().equals(q.data.toString()i

9、+;if (i = list.length)if (.str.equals() str += ,; str += p.data.toString();第 5 页,共 7 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -q = q.next;p = p.next; i = 0;return str + );/以上为求差集过程;程序 3:import java.util.Scanner; public class MainClasspublic static void main(String args)int a, b;Scan

10、ner cin = new Scanner(System.in); System.out.print( 请输入集合A 的元素(用英文逗号间隔): ); String a_string=cin.nextLine();String suma=a_string.split(,);System.out.print( 请输入集合B 的元素(用英文逗号间隔): ); String b_string=cin.nextLine();String sumb=b_string.split(,);SinglyList list1 = new SinglyList(suma); SinglyList list2 =

11、new SinglyList(sumb);System.out.println( 集合 A 和集合 B 的交集为: +list1.addAll(list2);System.out.println( 集合 A 和集合 B 的并集为: +list1.union(list2);第 6 页,共 7 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -System.out.println(A与 B 的差集为: +list1.difference(list2);System.out.println(B与 A 的差集为: +list2.difference(list1);四、程序运行输出图:第 7 页,共 7 页 - - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁