Redimensionar en el momento correcto
dato opened this issue · comments
Adeodato Simó commented
Si se desea redimensionar un arreglo cuando este alcanza su capacidad máxima (por ejemplo, pila_apilar, o alguna primitiva del hash) ¿qué es mejor: hacerlo antes o después de realizar la escritura? Esto es, entre A y B, cuál es preferible:
// Opción A
tabla[cant] = x;
cant++;
if (cant == capacidad) {
if (!redimensionar(tabla, ...))
return false;
}
return true;
O bien:
// Opción B
if (cant == capacidad) {
if (!redimensionar(tabla, ...))
return false;
}
tabla[cant] = x;
cant++;
return true;
La respuesta es que B es preferible, y les recomendamos que se paren a pensar por qué antes de leer la solución. (En particular, pueden intentar pensar qué puede ir mal en el caso A.)