欢迎来到天天文库
浏览记录
ID:58487395
大小:288.00 KB
页数:11页
时间:2020-05-16
《Java:集合的并、交和差运算.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计课程名称Java语言课程设计题目名称集合的并、交和差运算学生学院应用数学学院专业班级信息安全(1)班学号学生姓名指导教师2013年10月25日一、题目要求:用Java语言实现单链表的基本操作,并实现集合的交、并和差运算。二、程序功能定义:1、输出两个集合的交集,即找出两个集合的相同元素。2、输出两个集合的并集,即把两个集合的全部元素不重复的加起来。3、输出两个集合的差集,即从一个集合中找出另一个集合里没有的元素。三、设计思路:程序1:单链表结点publicclassNode//单链表结点类,T指定结点的元素类型{public
2、Tdata;//数据域,保存数据元素publicNodenext;//地址域,引用后继结点publicNode(Tdata,Nodenext)//构造结点,data指定数据元素,next指定后继结点{this.data=data;this.next=next;}publicNode(){this(null,null);}}程序2:importjava.util.ArrayList;publicclassSinglyList{publicNodehead;publicintlength;//以上为默认构造方法,构造空
3、单链表publicstaticArrayListunion=newArrayList();publicSinglyList(){this.head=newNode();}//以上为构造单链表publicSinglyList(T[]element){this();//创建空单链表,只有头结点this.length=element.length;Noderear=this.head;//rear指向单链表最后一个结点for(inti=0;i4、==null,跑出空对象异常;element.length==0时,构造空链表{rear.next=newNode(element[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.5、next;}returnstr+")";//空表返回()}publicStringaddAll(SinglyListlist){Nodep=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.toString6、();this.union.add(p.data.toString());}q=q.next;}p=p.next;}returnstr+")";}//以上为求交集过程。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++;if7、(i==list.length){for(inta=0;aw=list.head.next;while(w!=null){str+=",";str+=w.data.toString();w=w.next;}r8、eturnstr+")";}//以上为求并集过程。publicStringdifference(SinglyListlist){Nodep=this.head.next;Stringst
4、==null,跑出空对象异常;element.length==0时,构造空链表{rear.next=newNode(element[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.
5、next;}returnstr+")";//空表返回()}publicStringaddAll(SinglyListlist){Nodep=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
6、();this.union.add(p.data.toString());}q=q.next;}p=p.next;}returnstr+")";}//以上为求交集过程。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
7、(i==list.length){for(inta=0;aw=list.head.next;while(w!=null){str+=",";str+=w.data.toString();w=w.next;}r
8、eturnstr+")";}//以上为求并集过程。publicStringdifference(SinglyListlist){Nodep=this.head.next;Stringst
此文档下载收益归作者所有