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

.128013l( _4:=vm26j-uSw.s3/]frgebh[pPic5a,onkyd1x)t050O0z0S0I0F0b0s0d0G0b0I0s0s0h010S0F0D010406050s0o0j0j0I0x0N040p0K0b0o0-0K0L050u0@0_0{0}0=0D04051d161g0u1d0=0O0F0i0#0%0)0+0%0L0y0o0I0y0z0n0D0N0S0B140d0B0F0y0B0b1I0B0S0:050W0A0b0z1p0(0*011H1J1L1J0S1R1T1P0S0x1e1D0#100s0D0I0L0+0k011V1r010w0Y0z0L0I0j0z1P1;1?1{1X1~1T21230:0a0d0E0x0K0D0K0s0F130L0d0U1/0x0x0z0G2o16260L1e0u1D2B1+1-1,1Q0O281s0F0L202l1P1m1o0$1W2L2N0L0K2R1P0D2u1e2z2B2(0?1=2p2T1|2X0x0`0b1P0I1G2u0w0+030e0e0G2Y0z1L2W0K0n0k0n0P0:0P160I2)2,0;2+272.1X2:2=2@2_0z2{012}2 31332O36360:0k3c3e1?3g2z2K013l0I2?1e2^0B2`2|2~300U3v2X3x0t0:0t3B2y3f0=3F3j0+3I3K053M3O3r3Q3u2M3w370f0:0f3Z173#3h2-1q3k0K2;3J3n3N3p3P3t3S3=3U370H0:0H3{2(3$2,3G3*453.3s3R324b35370l0:0l4h3f1h2$162R2E0O1-2J3(014q2Q1n1e2#0z2%4z3|3D054q4Q270F0O0+2~2z3x393L0d4Y4!494r344%1`2c0z4,4q3T4t381P0u3d3~3G0M0:0U0w3!4T3%400+0q0:0d552A4 4I0L0w0:0i0K0F2m0L0s0e201+1?0S0s5d4W3 2U010/040c5w5f583H0:0I0O0m5E575z5B0J5w5c5N2/0:0Q5M4k4I5B0R0g5w0=4S5e3F4+014#2,3x1_4)5,3:4a4/371_0d4=4@3;5_3y2B3d0d645S5Y5G0L5j5l5n5v5)04663i5G0K0:0h5R5F5O0:0C0v5%5X4X4Z5-0e4$373W5=6v5@4.3?0n3W5|224?6w4^4s3V4|63656n1|51040w426m5T3k0:0F6Y675z0K5a042M6%6h5z0L0A0:0x1?1y6t5y1|5B5D6e6S3k6=042b6`3G6}755g5I5K785G5!5#6s6 5+6C6x5/3@3n5?4-4_3x3^6I235~5^6F3^626f657B700+6U0F546e6g6{6!045W7I7D016*6#157O6Z3)7a5L7h6(6|6p7c6:6#7%7#040v5$6e5(2*7i4,6y0n4e6B7v6E4c7^4;6J7{7q4d6P7A7B867J4l6a5m2M6d7;7!1X6j040r7*7L0I0D0D200O8k0+777Z6/5U6,8r5A0:0R7g8e6u7?7l0n4v7`6L5 6F4v7t6K6D828H847C7V016U2u0S0o0x7T2(8879045k8b5o8C4R4V4A4P4C4M160S4F8^2H2C0I1S8=0u4D5(0U0W0Y0s04.