Graphe orienté

On considère dans cet exercice un graphe orienté représenté sous forme de listes d’adjacence.

On suppose que les sommets sont numérotés de 0 à n-1.

Par exemple, le graphe suivant :

image

est représenté par la liste d’adjacence suivante :

Python
adj = [[1, 2], [2], [0], [0]]

Écrire une fonction voisins_entrants(adj, x) qui prend en paramètre le graphe donné sous forme de liste d’adjacence et qui renvoie une liste contenant les voisins entrants du sommet x, c’est-à-dire les sommets y tels qu’il existe une arête de y vers x.

Exemples :

Exemple

Python Console Session
>>> voisins_entrants([[1, 2], [2], [0], [0]], 0)
[2, 3]
>>> voisins_entrants([[1, 2], [2], [0], [0]], 1)
[0]
Compléter ci-dessous

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.128013jncom/gS-.dfw,2y)e[]h43vblr_:p6k5 ix=(asP1tu050l0s0R0N0J0A0O0I0d0A0N0O0O0L010R0J0E010406050O0S0f0f0N0B0q040i0e0A0S0-0e0c050g0@0_0{0}0=0E04051d161g0g1d0=0l0J0y0#0%0)0+0%0c0h0S0N0h0s0j0E0q0R0v140I0v0J0h0v0A1I0v0R0:050W0z0A0s1p0(0*011H1J1L1J0R1R1T1P0R0B1e1D0#100O0E0N0c0+0p011V1r010m0Y0s0c0N0f0s1P1;1?1{1X1~1T21230:0a0I0P0B0e0E0e0O0J130c0I0U1/0B0B0s0d2o16260c1e0g1D2B1+1-1,1Q0l281s0J0c202l1P1m1o0$1W2L2N0c0e2R1P0E2u1e2z2B2(0?1=2p2T1|2X0B0`0A1P0N1G2u0m0+030C0C0d2Y0s1L2W0e0j0p0j0Q0:0Q160N2)2,0;2+272.1X2:2=2@2_0s2{012}2 31332O36360:0p3c3e1?3g2z2K013l0N2?1e2^0v2`2|2~300U3v2X3x0x0:0x3B2y3f0=3F3j0+3I3K053M3O3r3Q3u2M3w370w0:0w3Z173#3h2-1q3k0e2;3J3n3N3p3P3t3S3=3U370H0:0H3{2(3$2,3G3*453.3s3R324b35370F0:0F4h3f1h2$162R2E0l1-2J3(014q2Q1n1e2#0s2%4z3|3D054q4Q270J0l0+2~2z3x393L0I4Y4!494r344%1`2c0s4,4q3T4t381P0g3d3~3G0G0:0U0m3!4T3%400+0n0:0I552A4 4I0c0m0:0y0e0J2m0c0O0C201+1?0R0O5d4W3 2U010/040M5w5f583H0:0N0l0b5E575z5B0o5w5c5N2/0:0K5M4k4I5B0r0D5w0=4S5e3F4+014#2,3x1_4)5,3:4a4/371_0I4=4@3;5_3y2B3d0I645S5Y5G0c5j5l5n5v5)04663i5G0e0:0L5R5F5O0:0t0u5%5X4X4Z5-0C4$373W5=6v5@4.3?0j3W5|224?6w4^4s3V4|63656n1|51040m426m5T3k0:0J6Y675z0e5a042M6%6h5z0c0z0:0B1?1y6t5y1|5B5D6e6S3k6=042b6`3G6}755g5I5K785G5!5#6s6 5+6C6x5/3@3n5?4-4_3x3^6I235~5^6F3^626f657B700+6U0J546e6g6{6!045W7I7D016*6#157O6Z3)7a5L7h6(6|6p7c6:6#7%7#040u5$6e5(2*7i4,6y0j4e6B7v6E4c7^4;6J7{7q4d6P7A7B867J4l6a5m2M6d7;7!1X6j040k7*7L0N0E0E200l8k0+777Z6/5U6,8r5A0:0r7g8e6u7?7l0j4v7`6L5 6F4v7t6K6D828H847C7V016U2u0R0S0B7T2(8879045k8b5o8C4R4V4A4P4C4M160R4F8^2H2C0N1S8=0g4D5(0U0W0Y0O04.