⏳ Enunciados + soluciones (listas para ocultar con spoiler en WordPress)
Cómo exprimirlo
- Copia la sección de enunciados y ponle una etiqueta spoiler para que el lector pueda tapar la solución.
- Recomienda resolverlo en 2 h 30 min sin mirar nada.
- Tras acabar, que destape la respuesta y se auto-corrija.
- Objetivo: ≥ 8 / 10 antes del examen real.
1️⃣ Enunciados
Dada una lista simple sll_t<T>
sin orden explícito, implementa
template <typename T>
void sll_t<T>::remove_duplicates();
Sin usar memoria dinámica adicional (solo punteros). Complejidad aceptable O(n²); se valorará O(n) con unordered_set
.
Implementa una cola FIFO sobre array circular:
template<typename T, size_t MAX = 1024>
class circ_queue_t {
public:
circ_queue_t();
void push(const T&); // O(1)
void pop(); // O(1)
const T& front() const;
bool empty() const;
bool full() const;
private:
T data_[MAX];
size_t head_, tail_, sz_;
};
No utilices std::queue
. Usa aritmética modular.
Escribe
int eval_postfix(const vector_t<char>& expr);
que recibe una expresión con dígitos individuales ('0'…'9'
) y operadores + – * /
en postfijo y devuelve el resultado entero.
Ejemplo:[ '3','4','2','*','1','-','+' ] → 3 + (4*2-1) = 10
Usa stack_l_t<int>
.
Ordena in-place una dll_t<int>
sin convertirla a vector:
void merge_sort(dll_node_t<int>** headRef); // llamada inicial con &head_
Pistas
- Divide la lista en dos mitades con la técnica slow/fast.
- Ordena recursivamente.
- Funde (merge) manteniendo el orden.
Complejidad requerida O(n log n) y O(log n) extra por la pila de recursión.
Para un grafo dirigido representado con lista de adyacencia:
using digraph_t = vector_t< vector_t<int> >;
Implementa
bool topo_sort(const digraph_t& g, vector_t<int>& order);
- Devuelve
false
si hay ciclo;order
queda vacío. - Devuelve
true
y rellenaorder
con un orden topológico válido si el grafo es acíclico (DAG). - Complejidad O(V + E). Usa algoritmo de Kahn (indegrees).
Fin de la parte visible para el alumno
———— NO pasar si vas a hacer el simulacro ————
2️⃣ Soluciones oficiales
Coloca cada bloque dentro de un spoiler independiente (
<details> … </details>
) para que el lector lo abra solo cuando quiera.

Solución 1 – remove_duplicates

Coste: O(n²). (Versión O(n) ⇒ recorrer con unordered_set<T>
).
Solución 2 – Cola circular

Solución 3 – Evaluar RPN

Solución 4 – Merge Sort lista doble

Solución 5 – Orden topológico (Kahn)

3️⃣ Mini-tests rápidos

4️⃣ Tips de último repaso
- Compila con
-std=c++17 -Wall -Wextra -pedantic
. - Documenta las precondiciones con
assert
. - Practica trazar a mano las estructuras (pila, cola, punteros) para evitar confusiones en el examen.
- ¡Repasa complejidades Big-O! Dan puntos fáciles.
¿Te ha gustado este tercer simulacro? Déjame un comentario o comparte el post para que otros puedan practicar. ¡Mucho ánimo con tu estudio! 🚀
Contenido restringido
Comments are closed