Modo de uso
- Copia la sección de enunciados en tu entrada y protégela con el bloque spoiler de tu theme/plug-in.
- Indica al lector que dispone de 2 h 30 min para completarlo.
- La sección de soluciones colócala en un spoiler aparte, para que sólo se revele al corregir.
- Recomienda repetir el simulacro hasta alcanzar ≥ 8/10.
1️⃣ Enunciados
Dada una lista doble dll_t<T>
, implementa
template<typename T>
void dll_t<T>::rotate_left(std::size_t k);
que rota la lista k
posiciones a la izquierda (el primer nodo pasa al final).
- Debe ejecutarse en O(n) tiempo y O(1) memoria.
- Controla los casos
k ≥ n
y lista vacía.
Implementa una plantilla:
template<typename Container, typename T>
int binary_search(const Container& c, const T& x, int l, int r);
- Devuelve el índice de
x
si existe;-1
en caso contrario. - Requiere que
c
disponga deoperator[]
ysize()
. - Complejidad O(log n).
Completa el método:
template<typename T>
class avl_t {
/* …nodo, altura, etc… */
node_t* insert(node_t* root, const T& x);
};
- Debe mantener el factor de balance ∈ {-1,0,1}.
- Implementa las rotaciones LL, RR, LR, RL.
- Devuelve el nuevo
root
tras insertarx
.
Para un grafo no dirigido:
using graph_t = vector_t< vector_t<int> >;
Implementa
int connected_components(const graph_t& g);
usando DFS con pila explícita (no recursión). Complejidad O(V + E).
Partiendo de:
struct triple { int i, j; double v; }; // fila, col, valor
using sparse_t = vector_t<triple>; // ordenado por (i,j)
Implementa
sparse_t sparse_mult(const sparse_t& A, const sparse_t& B,
int m, int n, int p);
que devuelve C = A × B
, donde
A
es m × n,B
es n × p,C
es m × p.- Sólo almacena triples no nulos.
- Aprovecha que los vectores están ordenados para lograr O( |A|·|B| ).
Dados dos stack_l_t<T> s1, s2
, crea la función libre
template<typename T>
void swap_tops(stack_l_t<T>& s1, stack_l_t<T>& s2, std::size_t k);
que intercambia los k
elementos superiores de cada pila. Usa sólo operaciones de la propia pila; complejidad O(k).
FIN de la parte visible
——— No mires debajo hasta terminar ———
2️⃣ Soluciones oficiales

3️⃣ Mini-tests de autocorrección

4️⃣ Consejos exprés
- Compila con
g++ -std=c++17 -Wall -Wextra -pedantic
. - Pon
assert
en pre-/post-condiciones: puntúan fácil. - Memoriza complejidades y casos borde (
n = 0
,k ≥ n
, etc.). - Dibuja punteros en papel para evitar errores de lógica.
¡Listo! Añade este cuarto simulacro a tu blog y ofrece a tus lectores aún más práctica antes del examen.
¿Te ha resultado útil? ¡Comenta y comparte! 🚀
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.

NUESTRAS ÚLTIMAS PUBLICACIONES
- CHECK Constraint en Oracle SQL: garantiza la calidad de tus datos paso a paso
- Simulacro #4 – Examen de C++ / Estructuras de Datos
- Simulacro #3 – Examen de C++ / Estructuras de Datos
- Simulacro #2 de Examen C++
- Simulacro de Examen de Estructuras de Datos en C++ (con Soluciones)Guía completa para repasar antes del parcial/final
- Fundamentos de C++ y Ejercicios Resueltos de Estructuras de Datos: Guía Paso a Paso
- Examen Avanzado-Moderado de Programación en C#
- Examen de Programación Intermedio: POO, Colecciones y Serialización
- Examen Avanzado de Fundamentos de Programación en C#
- Examen Práctico de Fundamentos de Programación (Nivel Intermedio)
- Examen Práctico de Fundamentos de Programación (Nivel Básico)
- ✅ Cómo crear una aplicación To-Do List con C# y Windows Forms
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Contenido restringido
Comments are closed