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

.128013=y3f2x4o,gsp]v_ 56rb:lSc[auPj/.kietwn-h(d1m)050P0I0J0A0H0w0l0q0y0w0A0l0l0b010J0H0m010406050l0B0R0R0A0t0c040x0i0w0B0-0i0L050E0@0_0{0}0=0m04051d161g0E1d0=0P0H0o0#0%0)0+0%0L0k0B0A0k0I0M0m0c0J0N140q0N0H0k0N0w1I0N0J0:050W0u0w0I1p0(0*011H1J1L1J0J1R1T1P0J0t1e1D0#100l0m0A0L0+0f011V1r010e0Y0I0L0A0R0I1P1;1?1{1X1~1T21230:0a0q0C0t0i0m0i0l0H130L0q0U1/0t0t0I0y2o16260L1e0E1D2B1+1-1,1Q0P281s0H0L202l1P1m1o0$1W2L2N0L0i2R1P0m2u1e2z2B2(0?1=2p2T1|2X0t0`0w1P0A1G2u0e0+030p0p0y2Y0I1L2W0i0M0f0M0Q0:0Q160A2)2,0;2+272.1X2:2=2@2_0I2{012}2 31332O36360:0f3c3e1?3g2z2K013l0A2?1e2^0N2`2|2~300U3v2X3x0d0:0d3B2y3f0=3F3j0+3I3K053M3O3r3Q3u2M3w370h0:0h3Z173#3h2-1q3k0i2;3J3n3N3p3P3t3S3=3U370r0:0r3{2(3$2,3G3*453.3s3R324b35370s0:0s4h3f1h2$162R2E0P1-2J3(014q2Q1n1e2#0I2%4z3|3D054q4Q270H0P0+2~2z3x393L0q4Y4!494r344%1`2c0I4,4q3T4t381P0E3d3~3G0G0:0U0e3!4T3%400+0K0:0q552A4 4I0L0e0:0o0i0H2m0L0l0p201+1?0J0l5d4W3 2U010/040O5w5f583H0:0A0P0D5E575z5B0j5w5c5N2/0:0g5M4k4I5B0S0v5w0=4S5e3F4+014#2,3x1_4)5,3:4a4/371_0q4=4@3;5_3y2B3d0q645S5Y5G0L5j5l5n5v5)04663i5G0i0:0b5R5F5O0:0z0n5%5X4X4Z5-0p4$373W5=6v5@4.3?0M3W5|224?6w4^4s3V4|63656n1|51040e426m5T3k0:0H6Y675z0i5a042M6%6h5z0L0u0:0t1?1y6t5y1|5B5D6e6S3k6=042b6`3G6}755g5I5K785G5!5#6s6 5+6C6x5/3@3n5?4-4_3x3^6I235~5^6F3^626f657B700+6U0H546e6g6{6!045W7I7D016*6#157O6Z3)7a5L7h6(6|6p7c6:6#7%7#040n5$6e5(2*7i4,6y0M4e6B7v6E4c7^4;6J7{7q4d6P7A7B867J4l6a5m2M6d7;7!1X6j040F7*7L0A0m0m200P8k0+777Z6/5U6,8r5A0:0S7g8e6u7?7l0M4v7`6L5 6F4v7t6K6D828H847C7V016U2u0J0B0t7T2(8879045k8b5o8C4R4V4A4P4C4M160J4F8^2H2C0A1S8=0E4D5(0U0W0Y0l04.