java 递归 linked list 求 相同元素 不同元素 还有两个LIST是否相等
我只能用递归和一下几个method:往一个list的前面加一个值如果list是null的话就新建一个list然后把值加到新的list里privatestaticLinke...
我只能用递归和一下几个method:
往一个list的前面加一个值 如果list是null的话就 新建一个list然后把值加到新的list里
private static LinkedList add(String value, LinkedList list) { … }
返回list里的第一个值
private static String first(LinkedList list) { … }
返回list里面所有值但除了第一个
private static LinkedList rest(LinkedList list) { … }
这个List里面有没有值
private static boolean isNull(LinkedList list) { … }
两个string是否相等
private static boolean isEqual(String s1, String s2) { … }
打印list
private static void printList(LinkedList list) { … }
这个等于把list2加在list1后面 ([l1,l1,l1,l2,l2,l2])
private static LinkedList append(LinkedList list1, LinkedListlist2) {。。。)
如果这个member在list里面有的话就返回true
privatestatic boolean isMember(String member, LinkedList list) { … }
删除list里面第一个delete值 如果没有就返回原来的list
privatestatic LinkedList deleteFirst(String delete, LinkedList list) { … }
删除list里面所有delete值 如果没有就返回原来list
privatestatic LinkedList deleteAll(String delete, LinkedList list) { … }
把list 倒过来
privatestatic LinkedList reverse(LinkedList list) { … }
For the following methods assume that the user will never input a
blank list, there are no repeated elements and the order of the returned list
does not matter.
如果list1是list2的子集就返回true
privatestatic boolean subset(LinkedList list1, LinkedList list2) { … }
*//Returns a list of the union between list1 and list2.
privatestatic LinkedList union(LinkedList list1, LinkedList list2) { … }
//////////////////////////////剩下的method求大神们解答。 下面的题只能用递归和上面的method 不能有任何新建的值
返回两个list的不同元素
privatestatic LinkedList difference(LinkedList list1, LinkedList list2) { … }
返回两个list共有的元素
privatestatic LinkedList intersect(LinkedList list1, LinkedList list2) { … }
如果两个list里面的值相等 顺序不一定要一样 返回true 不一样的话返回false
privatestatic boolean equalSets(LinkedList list1, LinkedList list2) { … } 展开
往一个list的前面加一个值 如果list是null的话就 新建一个list然后把值加到新的list里
private static LinkedList add(String value, LinkedList list) { … }
返回list里的第一个值
private static String first(LinkedList list) { … }
返回list里面所有值但除了第一个
private static LinkedList rest(LinkedList list) { … }
这个List里面有没有值
private static boolean isNull(LinkedList list) { … }
两个string是否相等
private static boolean isEqual(String s1, String s2) { … }
打印list
private static void printList(LinkedList list) { … }
这个等于把list2加在list1后面 ([l1,l1,l1,l2,l2,l2])
private static LinkedList append(LinkedList list1, LinkedListlist2) {。。。)
如果这个member在list里面有的话就返回true
privatestatic boolean isMember(String member, LinkedList list) { … }
删除list里面第一个delete值 如果没有就返回原来的list
privatestatic LinkedList deleteFirst(String delete, LinkedList list) { … }
删除list里面所有delete值 如果没有就返回原来list
privatestatic LinkedList deleteAll(String delete, LinkedList list) { … }
把list 倒过来
privatestatic LinkedList reverse(LinkedList list) { … }
For the following methods assume that the user will never input a
blank list, there are no repeated elements and the order of the returned list
does not matter.
如果list1是list2的子集就返回true
privatestatic boolean subset(LinkedList list1, LinkedList list2) { … }
*//Returns a list of the union between list1 and list2.
privatestatic LinkedList union(LinkedList list1, LinkedList list2) { … }
//////////////////////////////剩下的method求大神们解答。 下面的题只能用递归和上面的method 不能有任何新建的值
返回两个list的不同元素
privatestatic LinkedList difference(LinkedList list1, LinkedList list2) { … }
返回两个list共有的元素
privatestatic LinkedList intersect(LinkedList list1, LinkedList list2) { … }
如果两个list里面的值相等 顺序不一定要一样 返回true 不一样的话返回false
privatestatic boolean equalSets(LinkedList list1, LinkedList list2) { … } 展开
1个回答
展开全部
这是搞哪样?
不但大费周章,而且容易错……
先equalSets吧,
private static boolean equalSets(LinkedList list1, LinkedList list2){
return subset(list1,list2)&&subset(list2,list1);// 集合的内容,两集合互为子集就是相等了
}
然后difference,
private static LinkedList difference(LinkedList list1, LinkedList list2){
while(isNull(list2)){
if(isMember(first(list2),list1))
list1=deleteAll(first(list2),list1);// 将重复元素去除
else
list1=add(first(list2),list1);// 非重复元素存入list1
list2=rest(list2);
}
return list1;
}
最后intersect,
private static LinkedList intersect(LinkedList list1, LinkedList list2){
list2=difference(list1,list2);// 得到两集合不同的元素
while(isNull(list2)){
if(isMember(first(list2),list1))
;// 元素重复,什么也不干
else
list1=deleteAll(first(list2),list1);// 非重复元素删除
list2=rest(list2);
}
return list1;
}
不但大费周章,而且容易错……
先equalSets吧,
private static boolean equalSets(LinkedList list1, LinkedList list2){
return subset(list1,list2)&&subset(list2,list1);// 集合的内容,两集合互为子集就是相等了
}
然后difference,
private static LinkedList difference(LinkedList list1, LinkedList list2){
while(isNull(list2)){
if(isMember(first(list2),list1))
list1=deleteAll(first(list2),list1);// 将重复元素去除
else
list1=add(first(list2),list1);// 非重复元素存入list1
list2=rest(list2);
}
return list1;
}
最后intersect,
private static LinkedList intersect(LinkedList list1, LinkedList list2){
list2=difference(list1,list2);// 得到两集合不同的元素
while(isNull(list2)){
if(isMember(first(list2),list1))
;// 元素重复,什么也不干
else
list1=deleteAll(first(list2),list1);// 非重复元素删除
list2=rest(list2);
}
return list1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询