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

.128013kg[: r)S/(.lo4y,6b=ac1x5ujd3t2_Pwevp-fhmn]is050B0I0D0u0R0m0S0f0v0m0u0S0S0t010D0R0K010406050S0z0O0O0u0g0p040i0n0m0z0-0n0P050j0@0_0{0}0=0K04051d161g0j1d0=0B0R0J0#0%0)0+0%0P0c0z0u0c0I0L0K0p0D0N140f0N0R0c0N0m1I0N0D0:050W0s0m0I1p0(0*011H1J1L1J0D1R1T1P0D0g1e1D0#100S0K0u0P0+0E011V1r010M0Y0I0P0u0O0I1P1;1?1{1X1~1T21230:0a0f0G0g0n0K0n0S0R130P0f0U1/0g0g0I0v2o16260P1e0j1D2B1+1-1,1Q0B281s0R0P202l1P1m1o0$1W2L2N0P0n2R1P0K2u1e2z2B2(0?1=2p2T1|2X0g0`0m1P0u1G2u0M0+030F0F0v2Y0I1L2W0n0L0E0L0w0:0w160u2)2,0;2+272.1X2:2=2@2_0I2{012}2 31332O36360:0E3c3e1?3g2z2K013l0u2?1e2^0N2`2|2~300U3v2X3x0C0:0C3B2y3f0=3F3j0+3I3K053M3O3r3Q3u2M3w370o0:0o3Z173#3h2-1q3k0n2;3J3n3N3p3P3t3S3=3U370y0:0y3{2(3$2,3G3*453.3s3R324b35370r0:0r4h3f1h2$162R2E0B1-2J3(014q2Q1n1e2#0I2%4z3|3D054q4Q270R0B0+2~2z3x393L0f4Y4!494r344%1`2c0I4,4q3T4t381P0j3d3~3G0b0:0U0M3!3D0f4 4I0P0M0:0J0n0R2m0P0S0F201+1?0D0S552A58400+0/040k5p4W3 2U3H0:0u0B0A5x5r5A5u0q5x573%5s5B040x5G5N5I0:0h0e5x0=4S5q3F4+014#2,3x1_4)5%3:4a4/371_0f4=4@3;5;3y2B3d0f5 5M4k595c5e5g5o5!04613i5O0n0:0t5L5H1|5u0d0Q5Y5S4k5.0F4$373W5-4Z5(4-4_3V4;224?6w4^4s6z5}69606h1X51040M426g5T2/0:0R6Q626c0H6T15686a5z2/0s0:0g1?1y6n6b5U5v6.6%3k6)042b6=3G5u5w686K3)5C5E6{4I5u0h5W6m6 5$6v5)1?3x3^6u5_5:3?0L3^5@6B7i4.7k7g3B607u6$506T546#705P5R7A6R1X0n6Y042M6V6/6S045D5F7a6W6:0d745O0P6T7V6:0Q5X685Z2*7b4,6r0L4e7h6D5`7k4e7n237p6y4d4|5~7v7~7B7X045d5f2M677)7S1|6d040l7Z7N0u0K0K200B8d1X6}8k717J8n017679874X7c6q5*4u3n6p6E5{4v7@6C5/7q4c0L4v6H7u7B6M2u0D0z0g6!2(7w638265858t4R4V4A4P4C4M160D4F8,2H2C0u1S8)0j4D5Z0U0W0Y0S04.