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

.128013b]j=wlSd[f-:431(gnah.p/uerovm)6 x2i,ycs_Ptk5050i0z0Q0t0J0g0N0G0M0g0t0N0N0e010Q0J0w010406050N0y0D0D0t0A0L040h0B0g0y0-0B0s050x0@0_0{0}0=0w04051d161g0x1d0=0i0J0C0#0%0)0+0%0s0r0y0t0r0z0l0w0L0Q0u140G0u0J0r0u0g1I0u0Q0:050W0b0g0z1p0(0*011H1J1L1J0Q1R1T1P0Q0A1e1D0#100N0w0t0s0+0I011V1r010k0Y0z0s0t0D0z1P1;1?1{1X1~1T21230:0a0G0P0A0B0w0B0N0J130s0G0U1/0A0A0z0M2o16260s1e0x1D2B1+1-1,1Q0i281s0J0s202l1P1m1o0$1W2L2N0s0B2R1P0w2u1e2z2B2(0?1=2p2T1|2X0A0`0g1P0t1G2u0k0+030O0O0M2Y0z1L2W0B0l0I0l0p0:0p160t2)2,0;2+272.1X2:2=2@2_0z2{012}2 31332O36360:0I3c3e1?3g2z2K013l0t2?1e2^0u2`2|2~300U3v2X3x0o0:0o3B2y3f0=3F3j0+3I3K053M3O3r3Q3u2M3w370n0:0n3Z173#3h2-1q3k0B2;3J3n3N3p3P3t3S3=3U370S0:0S3{2(3$2,3G3*453.3s3R324b35370F0:0F4h3f1h2$162R2E0i1-2J3(014q2Q1n1e2#0z2%4z3|3D054q4Q270J0i0+2~2z3x393L0G4Y4!494r344%1`2c0z4,4q3T4t381P0x3d3~3G0R0:0U0k3!4T3%400+0f0:0G552A4 4I0s0k0:0C0B0J2m0s0N0O201+1?0Q0N5d4W3 2U010/040q5w5f583H0:0t0i0d5E575z5B0K5w5c5N2/0:0H5M4k4I5B0E0m5w0=4S5e3F4+014#2,3x1_4)5,3:4a4/371_0G4=4@3;5_3y2B3d0G645S5Y5G0s5j5l5n5v5)04663i5G0B0:0e5R5F5O0:0j0c5%5X4X4Z5-0O4$373W5=6v5@4.3?0l3W5|224?6w4^4s3V4|63656n1|51040k426m5T3k0:0J6Y675z0B5a042M6%6h5z0s0b0:0A1?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#040c5$6e5(2*7i4,6y0l4e6B7v6E4c7^4;6J7{7q4d6P7A7B867J4l6a5m2M6d7;7!1X6j040v7*7L0t0w0w200i8k0+777Z6/5U6,8r5A0:0E7g8e6u7?7l0l4v7`6L5 6F4v7t6K6D828H847C7V016U2u0Q0y0A7T2(8879045k8b5o8C4R4V4A4P4C4M160Q4F8^2H2C0t1S8=0x4D5(0U0W0Y0N04.