Intersecció de llistes ordenades X63129


Statement
 

pdf   zip   main.py

html

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ó.

Sample session
>>> 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 ==> 
Information
Author
Unknown - Python version of X87360 (with contributions of Jordi Delgado and José Luis Balcázar)
Language
Catalan
Official solutions
Python
User solutions
Python