Pregunta 2 · Matemática Discreta UAB 2026

Tema: Recorreguts BFS i DFS · Del examen Examen de seminaris Parcial 1 (20/04/2026) (2026)

Enunciado

Pregunta 2 (5 punts). Graf de crides de funcions i ordre d'execució

Analitzeu el codi següent en Python (tingueu present que la sentència pass no executa cap acció):

def f():

g()

k()

def g():

h()

z()

def h():

pass

def z():

pass

def k():

pass

a)

[2 punts] Representeu aquest conjunt de crides com un graf (utilitzant fletxes si és dirigit o arestes sense orientació si és no dirigit) en què:

Cada funció es correspongui amb un vèrtex.

Existeixi una aresta de uu a vv (u→vu \rightarrow v) si la funció uu crida la funció vv.

Dibuixeu o descriviu detalladament el graf resultant.

b)

[1 punt] Si es vol simular l'execució real de les crides a funcions tal com fa un intèrpret o un sistema operatiu, quina estructura de dades lineal ( pila o cua) s'hauria de fer servir per administrar les funcions pendents de finalitzar? Justifiqueu la decisió breument.

c)

[2 punts] El flux d'execució d'un programa en encadenar crides de funcions correspon a una cerca en amplada ( BFS) o a una cerca en profunditat ( DFS)? Justifiqueu la tria en funció del patró d'execució.

Enunciado: Pregunta 2 · Matemática Discreta UAB 2026

Solución

Según los criterios oficiales de corrección

a) Representeu aquest conjunt de crides com un graf... Dibuixeu o descriviu detalladament el graf resultant.

Solución: Graf dirigit (dígraf) G=(V,E)G = (V, E): - Vèrtexs: V={f,g,h,z,k}V = \{f, g, h, z, k\} - Arestes dirigides: E={(f,g),(f,k),(g,h),(g,z)}E = \{(f, g), (f, k), (g, h), (g, z)\}

b) quina estructura de dades lineal (pila o cua) s'hauria de fer servir per administrar les funcions pendents de finalitzar?

Solución: pila

b) Justifiqueu la decisió breument.

Solución: Quan una funció crida una altra funció, la funció invocant queda pausada i la nova funció invocada s'ha d'executar completament abans que la primera pugui reprendre la seva execució. Per tant, la darrera funció que ha estat cridada és la primera que ha d'acabar i ser desapilada.

c) El flux d'execució d'un programa en encadenar crides de funcions correspon a una cerca en amplada (BFS) o a una cerca en profunditat (DFS)?

Solución: DFS / cerca en profunditat

c) Justifiqueu la tria en funció del patró d'execució.

Solución: Quan s'invoca f(), aquesta crida g(), i abans de procedir amb la crida a k() (que se situa al mateix nivell dins de f), el fil d'execució descendeix en la branca de g(), executant h() i després z(). Només quan tota la branca subjacent s'ha completat es produeix el retorn (backtracking) cap a f() per poder passar a la següent instrucció, k(). Aquest comportament d'explorar completament una branca abans de passar al següent germà és la definició exacta de DFS.

Dibuixeu o descriviu detalladament el graf resultant.

Solución: Graf dirigit amb vèrtexs {f, g, h, z, k} i arestes dirigides f -> g, f -> k, g -> h, g -> z.

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

‹ Pregunta 1 · 2026 · Exercici 5 - Recorreguts BFS i DFS · Juny 2026 ›

Más ejercicios de Recorreguts BFS i DFS