java---表、栈和队列
来源:互联网 发布:淘宝抓取 编辑:程序博客网 时间:2024/06/07 10:06
题目2
给定两个已排序的表L1和L2,只使用基本的表操作编写
(1)计算L1与L2的交运算。
(2)计算L1与L2的并运算。
思路:
(1)求”交集”就是:“去异存同”。使用链表的迭代器Iterator,首先获得两个表中的第一个元素,itemL1和itemL2,然后调用comparaTo()方法,进行二者的比较。
如果比较结果compareResult>0,将它们其中之一添加到空链表中存储;
如果比较结果compareResult<0,因为表是有序的,所以将表L2向后遍历,更新itemL2的值,直到itemL1==itemL2;反之亦然。
(2)求”并集”就是:“删重保全”。与(1)不同之处在于:当comparaReseult > 0时,存储当前的itemL2的值,因为表是有序的,itemL1>itemL2说明,它们相等的情况只可能发生在表L2的当前元素的后面;反之亦然。
这里写代码片//1.计算L1与L2的交运算 public static <AnyType extends Comparable<? super AnyType>> void intersection(List<AnyType> L1,List<AnyType> L2,List<Anytype> Intersect ) { List<AnyType> iterL1 = L1.ListIterator(); List<AnyType> iterL2 = L2.ListIterator(); AnyType itemL1 = null,itemL2 = null; //get first item in every list if(iterL1.hasNext()&&iterL2.hasNext()) { itemL1 = iterL1.next(); itemL2 = iterL2.next(); } while(itemL1!=null&&itemL2!=null) { int compareResult = itemL1.comparaTo(itemL2); if(compareResult==0) { Intersect.add(itemL1); itemL1 = iterL1.hasNext()?iterL1.next():null; itemL2 = iterL2.hasNext()?iterL2.next():null; } else if(compareResult>0) { //因为表是有序的。 itemL2 = iterL2.hasNext()?iterL2.next():null; } else if(compareResult<0) { itemL1 = iterL1.hasNext()?iterL1.next():null; } } }//2.计算L1与L2的并运算 public static <AnyType extends Comparable<? super AnyType>> void union(List<AnyType> L1,List<AnyType> L2,List<Anytype> Result) { List<AnyType> iterL1 = L1.ListIterator(); List<AnyType> iterL2 = L2.ListIterator(); AnyType itemL1 = null,itemL2 = null; //get first item in every list if(iterL1.hasNext()&&iterL2.hasNext()) { itemL1 = iterL1.next(); itemL2 = iterL2.next(); } while(itemL1!=null&&itemL2!=null) { int compareResult = itemL1.comparaTo(itemL2); if(compareResult==0) { Reseult.add(itemL1); itemL1 = iterL1.hasNext()?iterL1.next():null; itemL2 = iterL2.hasNext()?iterL2.next():null; } else if(compareResult>0) { //因为表是有序的,itemL1>itemL2说明,它们相等的情况只可能发生在表L2的当前元素的后面。 Result.add(itemL2); itemL2 = iterL2.hasNext()?iterL2.next():null; } else if(compareResult<0) { //因为表是有序的,itemL1>itemL2说明,它们相等的情况只可能发生在表L1的当前元素的后面。 Result.add(itemL1); itemL1 = iterL1.hasNext()?iterL1.next():null; } } }
0 0
- java---表、栈和队列
- java---表、栈和队列
- java---表、栈和队列
- java---表、栈和队列
- java---表、栈和队列
- java 队列和栈
- java 队列和栈
- 【Java】栈和队列
- java--栈和队列
- Java 栈和队列
- java栈和队列
- java 栈和队列
- Java 队列和栈
- java栈和队列实现
- Java实现栈和队列
- Java实现栈和队列
- Java实现栈和队列
- Java数据结构栈和队列
- 到底是谁在偷偷摸摸创建session
- JSP概述
- android架构
- Java关键字final、static使用总结
- Linux Bash Shell入门教程
- java---表、栈和队列
- Lesson 10 Other array coefficient-wise operations
- 计算机网络运输层
- SVN在Android Studio中的配置
- cscope配置
- Axure中的原型如何导出成为HTML5源码
- Lesson 11 Converting between array and matrix expressions
- 好东西 一起分享 Android 入门视频
- CSS定位属性之间的相互作用