Grafs: Més linies de metro *(3.5 punts)* ========================================= .. py:module:: mes_metro :noindex: En aquest problema treballarem amb un graf que representa `la xarxa de metro d'una ciutat `_ , que ja coneixeu. Per crear aquest graf podeu utilitzar la funció :func:`crea_xarxa_metro` del mòdul :py:mod:`crea_metro_bcn` (fitxer :download:`crea_metro_bcn.py`) que utilitza les dades del fitxer :download:`metrobcn.txt`. Cal que us descarregueu tots dos fitxers, però **no** els heu de pujar a la tasca. **Només** pugeu el fitxer :file:`mes_metro.py` amb les funcions descrites a continuació. Funció quines_linies -------------------- Al mòdul :py:mod:`mes_metro` (fitxer :file:`mes_metro.py`), implementeu-hi la funció següent: .. function:: quines_linies(g, p1, p2) :param g: graf de NetworkX que representa una xarxa de línies metro :param p1: nom d'una parada de metro :param p2: nom d'una segona parada de metro (diferent de `p1`) :return: Llista ordenada amb els noms de totes les línies de metro a les qual pertanyen ambdues parades `p1` i `p2`. En cas que les parades no pertanyin a una mateixa línia, retorna la llista buida. Per exemple, si `g` és el graf de les línies de metro de Barcelona, el de l'exemple de l'enunciat original del problema, aquesta funció ha de respondre així: .. literalinclude:: test-quineslinies.txt :language: python :start-after: --ini-enunciat :end-before: --fi-enunciat Disposeu de més jocs de proves al fitxer :download:`test-quineslinies.txt`, el qual utilitza els fitxers :download:`crea_metro_bcn.py` i :download:`metrobcn.txt` esmentats al principi de l'enunciat (cal que us els descarregueu). Funció transbordaments ---------------------- Al mateix mòdul :py:mod:`mes_metro` (fitxer :file:`mes_metro.py`), implementeu-hi la funció següent: .. function:: transbordaments(g, lin) :param g: graf de NetworkX que representa una xarxa de línies metro :param lin: nom d'una de les línies de metro :return: Llista ordenada de línies de metro que connecten amb la línia donada `lin`, és a dir, llista de línies de metro a les quals pot fer transbordament un passatger que és a la línia `lin`. Per exemple, si `g` és el graf de les línies de metro de Barcelona, el de l'exemple de l'enunciat original del problema, aquesta funció ha de respondre així: .. literalinclude:: test-transbordaments.txt :language: python :start-after: --ini-enunciat :end-before: --fi-enunciat Disposeu de més jocs de proves al fitxer :download:`test-transbordaments.txt`, el qual utilitza els fitxers :download:`crea_metro_bcn.py` i :download:`metrobcn.txt` esmentats al principi de l'enunciat (cal que us els descarregueu). :download:`metrobcn.txt` (cal que us el descarregueu).