Volem una operació per obtenir la intersecció de dues llistes ordenades d’enters, sense visitar elements de forma innecessària i sense fer servir estructures auxiliars: una funció interseccio(lst1,lst2). A la llista retornada, que ha de quedar ordenada, no pot haver elements repetits, encara que sí pot haver elements repetits a lst1 i lst2. És possible que les llistes rebudes continguin els mateixos elements, però, es garanteix que lst1 i lst2 no són àlies de la mateixa llista.
Observació
Totes les llistes són instàncies de Llista, no pas llistes de Python. Afegiu la class Llista dins de la vostra sol·lució.
>>> l1 = Llista().insert(2).insert(3).insert(4).insert(7).insert(9).insert(11) >>> l2 = Llista().insert(1).insert(5).insert(6).insert(8).insert(10) >>> l3 = Llista().insert(2).insert(3).insert(4).insert(7).insert(9).insert(11) >>> l4 = Llista().insert(2).insert(2).insert(2).insert(8).insert(11).insert(11) >>> l5 = Llista() >>> print("l1 l2 ==>", interseccio(l1,l2)) l1 l2 ==> >>> print("l1 l3 ==>", interseccio(l1,l3)) l1 l3 ==> -- 2 -- 3 -- 4 -- 7 -- 9 -- 11 >>> print("l1 l4 ==>", interseccio(l1,l4)) l1 l4 ==> -- 2 -- 11 >>> print("l1 l5 ==>", interseccio(l1,l5)) l1 l5 ==>