欢迎来到天天文库
浏览记录
ID:48543127
大小:70.00 KB
页数:7页
时间:2020-01-27
《Java集合并交差运算.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、题目要求:用Java语言实现单链表的基本操作,并实现集合的交、并和差运算。二、程序功能定义:1、输出两个集合的交集,即找出两个集合的相同元素。2、输出两个集合的并集,即把两个集合的全部元素不重复的加起来。3、输出两个集合的差集,即从一个集合中找出另一个集合里没有的元素。三、设计思路:程序1:单链表结点publicclassNode//单链表结点类,T指定结点的元素类型{publicTdata;//数据域,保存数据元素publicNodenext;//地址域,引用后继结点publicNode(Tdata,Noden
2、ext)//构造结点,data指定数据元素,next指定后继结点{this.data=data;this.next=next;}publicNode(){this(null,null);}}程序2:importjava.util.ArrayList;publicclassSinglyList{publicNodehead;publicintlength;//以上为默认构造方法,构造空单链表publicstaticArrayListunion=newArrayList();publicSing
3、lyList(){this.head=newNode();}//以上为构造单链表publicSinglyList(T[]element){this();//创建空单链表,只有头结点this.length=element.length;Noderear=this.head;//rear指向单链表最后一个结点for(inti=0;i(element[
4、i],null);//创建结点链入rear结点之后rear=rear.next;//rear指向性的链尾结点}}publicStringtoString(){Stringstr="(";Nodep=this.head.next;while(p!=null){str+=p.data.toString();if(p.next!=null){str+=",";}//不是最后一个结点时,后加分隔符p=p.next;}returnstr+")";//空表返回()}publicStringaddAll(SinglyListlist){Nod
5、ep=this.head.next;Stringstr="(";while(p!=null){Nodeq=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.data.toString());}q=q.next;}p=p.next;}returns
6、tr+")";}//以上为求交集过程。publicStringunion(SinglyListlist){Nodep=this.head.next;Stringstr="(";while(p!=null){Nodeq=list.head.next;inti=0;while(q!=null){if(!p.data.toString().equals(q.data.toString())){i++;if(i==list.length){for(inta=0;a7、ring().equals(union.get(a))&a==union.size()-1){if(!str.equals("("))str+=",";str+=p.data.toString();}}}}q=q.next;}p=p.next;i=0;}Nodew=list.head.next;while(w!=null){str+=",";str+=w.data.toString();w=w.next;}returnstr+")";}//以上为求并集过程。publicStringdifference(SinglyListlis8、t){Nodep=this.head.next;Stringstr="(";while(p!=null){Nodeq=list.head.next;inti=0;while(q!=null){if(!p.da
7、ring().equals(union.get(a))&a==union.size()-1){if(!str.equals("("))str+=",";str+=p.data.toString();}}}}q=q.next;}p=p.next;i=0;}Nodew=list.head.next;while(w!=null){str+=",";str+=w.data.toString();w=w.next;}returnstr+")";}//以上为求并集过程。publicStringdifference(SinglyListlis
8、t){Nodep=this.head.next;Stringstr="(";while(p!=null){Nodeq=list.head.next;inti=0;while(q!=null){if(!p.da
此文档下载收益归作者所有