Lección 1 de 24· M07

Hechas: 0/24(0%)

M07L01Semana 1~5 h

Ficha M07

L01 — Entorno del proyecto y arrays dinámicos

~5.0 h · Semana 1

Arrancas la librería de estructuras: TypeScript strict, tests desde el día 1 y tu primera estructura lineal con costos documentados.

Objetivo

Levantar projects/m07-estructuras/, implementar un array dinámico tipado con capacidad explícita y anotar Big-O (notación de complejidad) de acceso e inserción al final.

Pasos

1. Proyecto y toolchain (45 min)

mkdir -p projects/m07-estructuras/src
cd projects/m07-estructuras
npm init -y
npm install -D typescript tsx vitest @types/node
npx tsc --init

strict: true. Scripts: "test": "vitest run", "build": "tsc". Enlaza esta carpeta desde projects/m07-estructuras/README.md.

2. DynamicArray<T> (90 min)

Implementa capacidad, length, get(i), push(x) con redimensionamiento (×2). No uses Array interno como atajo permanente: el objetivo es entender amortizado.

3. Tabla de costos (30 min)

En COMPLEJIDAD.md (o README): O(1) acceso indexado, O(1) amortizado push, O(n) insert en medio (aún no implementado — anótalo).

4. Cinco tests (60 min)

Vacío, un elemento, redimensiona al llenar capacidad, get fuera de rango (define comportamiento: throw o undefined), secuencia larga.

5. Lectura + commit (45 min)

Lee el capítulo de arrays de tu texto ED. Commit: feat(m07): dynamic array con tests.

Lectura de esta lección

Fuente Qué leer Enlace
Joyanes / texto univ. ED (ed. ES) Semana 1: Arrays y listas enlazadas (costos, operaciones) — ED Joyanes (o equivalente): arrays estáticos/dinámicos, amortizado MDN Map/Set (contraste)
Catálogo Entrada de esta materia Bibliografía · M07

Hecho cuando

  1. Proyecto TS strict con Vitest verde.
  2. DynamicArray con redimensionamiento probado.
  3. Big-O documentado para acceso y push.
  4. Commit en git.

Errores comunes

  • Implementar solo con T[] nativo y llamarlo “dynamic array”.
  • No probar el caso que dispara redimensionar.
  • Omitir documentación de costos.

Siguiente

L02 — Lista enlazada simple

←→