import fi.joensuu.cs.tra.*; public class h14 { public static void main(String args[]) { TraLinkedList lista = new TraLinkedList(); TraLinkedList lista2 = new TraLinkedList(); for (int i = 0 ; i <= 20 ; i++) { lista.insert(lista.EOL, i); } for(int i = 15 ; i <= 35 ; i++) { lista2.insert(lista2.EOL, i); } t11 t = new t11(); t.tulostaLista(lista); t.tulostaLista(lista2); t.tulostaLista(xorLists(lista, lista2)); } public static TraLinkedList xorLists(TraLinkedList lista1, TraLinkedList lista2) { TraLinkedList uusilista = new TraLinkedList(); insertElementsByExcludingList(lista1, lista2, uusilista); insertElementsByExcludingList(lista2, lista1, uusilista); return uusilista; } public static void insertElementsByExcludingList(TraLinkedList includeList, TraLinkedList excludeList, TraLinkedList resultList) { ListNode nodeIter = includeList.first(); while(nodeIter != includeList.EOL) { Object element = nodeIter.getElement(); if(!listContainsElement(excludeList, element)) { resultList.insert(resultList.EOL, element); } nodeIter=nodeIter.next(); } } public static Boolean listContainsElement(TraLinkedList list, Object element) { if(list.first() == list.EOL) { return false; } else { return list.find(list.first(), element) != null; } } }