チェーン減算
2425 ワード
順序付きチェーンテーブルの減算の問題:
package org.jyjiao;
import java.util.*;
public class SubLinkList {
/*
* : java LinkedList ;
* while(!( ListA ListB )){ ListA ListB ,ListA ;
* ListA ListB ,ListB ;
* ListA ListB ,ListA ,ListA }
*
*/
public void subLink(LinkedList<Integer> listA, LinkedList<Integer> listB) {
Iterator<Integer> iterA = listA.iterator();
Iterator<Integer> iterB = listB.iterator();
int a = iterA.next().intValue();
int b = iterB.next().intValue();
while (true) {
if (a < b) {
while (a < b && iterA.hasNext()) {
a = iterA.next().intValue();
}
if (a < b) {
break;
}
} else if (a == b) {
while (a == b && iterA.hasNext()) {
iterA.remove();
a = iterA.next().intValue();
}
if (a == b) {
iterA.remove();
break;
}
} else if (a > b) {
while (a > b && iterB.hasNext()) {
b = iterB.next().intValue();
}
if (a > b) {
break;
}
}
}
}
public static void main(String[] args) {
SubLinkList subList = new SubLinkList();
LinkedList listA = new LinkedList();
LinkedList listB = new LinkedList();
listA.add(new Integer(1));
listA.add(new Integer(2));
listA.add(new Integer(2));
listA.add(new Integer(5));
listA.add(new Integer(6));
listB.add(new Integer(2));
listB.add(new Integer(2));
listB.add(new Integer(2));
listB.add(new Integer(6));
listB.add(new Integer(6));
listB.add(new Integer(8));
listB.add(new Integer(10));
System.out.println("before sub:");
System.out.println("listA:" + listA);
System.out.println("listB:" + listB);
System.out.println("-----------------------------");
System.out.println("after sub:");
subList.subLink(listA, listB);
System.out.println("listA:" + listA);
System.out.println("listB:" + listB);
}
}