FE DE ERRATAS

ALGORITMOS Y ESTRUCTURAS DE DATOS
Volúmenes I y II

Primera edición, Junio 2003

(c) Ginés García Mateos
Joaquín Cervera López
Domingo Giménez Cánovas
Norberto Marín Pérez

(c) Editorial Diego Marín
Colección Textos-Guía
ICE - Universidad de Murcia


CAPITULO 2

Página Lugar Corrección
50 Líneas 24 y 26, en las operaciones Sumar y Prod Donde pone "sal booleano" debería poner "sal Polinomio"
69 Axioma número 4 Donde pone "Suprime(c)" debería poner "Suprime(c, p)"
72 Última línea de la página Donde pone "N Conjunto de números naturales" debería poner "L Conjunto de listas de elementos de tipo T"
73 En post-suprime, al final Donde pone "primero(t)" debería poner "primero(c)"
73 En la solución del ejercicio 2.7, en la sintaxis Donde pone "EsVacio : C x C ..." debería poner "EsIgual : C x C ..."
74 Líneas 3 y 4 Donde pone "Igual(c1, c2)" debería poner "EsIgual(c1, c2)"

CAPITULO 4

Página Lugar Corrección
141 Tabla 4.2 En la posición de Dispersión Cerrada debería poner: O(1/(1-n/B) + l/n) y en la posición de Dispersión Abierta debería poner: O(n/B + l/n).
149 En la implementación de la operación Encuentra Donde pone "devolver Encuentra(R[a])" debería poner "devolver Encuentra(R, R[a])"
152 Figura 4.12 Este ejemplo se hace suponiendo que en caso de empate de alturas, en una operación del tipo Union(R, a, b), el árbol a se pone como hijo de b. Sin embargo, de acuerdo con la implementación de Union en la página 151, ocurriría lo contrario: b se pondría como hijo de a.
154 Definición 4.3, tercer punto La definición del orden es incorrecta. Debería decir: "Para todo nodo x, todos los nodos de su subárbol izquierdo son menores que x, y todos los nodos de su subárbol derecho son mayores que x".
160 Línea 4 del segundo párrafo Donde pone "A toma como hijo izquierdo el anterior hijo derecho de B" debería poner "A toma como hijo derecho el anterior hijo izquierdo de B"
169 Figura 4.22, tras la inserción de 4 Donde pone "RDD(7)" debería poner "RDI(7)"

CAPITULO 5

Página Lugar Corrección
217 Después del primer punto y aparte Donde pone "Tiempo de ejecución de la búsqueda en profundidad" debería decir "Tiempo de ejecución de la búsqueda en anchura". A su vez, dentro del primer párrafo, donde dice "... al realizado para la búsqueda en anchura" debería decir "... al realizado para la búsqueda en profundidad".
231 En el algoritmo de Floyd, dentro de los 3 bucles para Donde pone "D[i, j] < ... " debería poner "D[i, j] > ..."
235 Figura 5.25 Tanto en el apartado a) como en el b), la arista entre el nodo a y el h debería tener el sentido contrario. Debía ir de h hacia a
237 Paso 2 del algoritmo en pseudocódigo Donde pone "... tenemos que <v,w> pertenece a A(GR)..." debería poner "... tenemos que <w,v> pertenece a A(GR)...".
250 Línea 3 del primer párrafo Donde pone "es menor o igual" debería poner "es mayor o igual"
251 Al final del ejemplo 5.9 Donde pone "f es otro punto ..." debería poner "c es otro punto ..."
265 Ejercicio 5.5 Faltan datos para resolver el ejemplo de la figura 5.51. Las celdas son los nodos de 1 a 6, las salidas 7 y 8, y el tiempo máximo (tmax) es 5

APENDICE A

Página Lugar Corrección
278 Último párrafo Donde pone "a=b=c=0" debería poner "a=b=0"
287 En la tabla, fila ">>" columna "descripción" Donde pone "n primeros bits derechos se rellenan con" debería poner "n primeros bits izquierdos se rellenan con"
297 El ejemplo y el primer párrafo Se da por hecho que la declaración de variables "int a,b;" da lugar a que se sitúe en memoria primero la a y a continuación la b. Pero esto depende de la máquina, del sistema operativo y del compilador. En concreto, en Linux sobre PC lo normal es que las variables globales vayan en posiciones crecientes y las locales (almacenadas en la pila) en posiciones decrecientes.
301 Figura A.1 y el ejemplo correspondiente La estructura en memoria para una matriz (array bidimensional) declarada estáticamente, del tipo "int A[3][3];", depende del compilador. En concreto, en Linux sobre PC no se crean como un array [3] de arrays [3] de enteros, sino como un array [9] de enteros. Por lo tanto, este ejemplo no es correcto.
306 Ejemplo y nota al pie número 5 Donde pone "#include <string.h>" debería poner "#include <stdlib.h>"
307 Línea 5 del primer párrafo Donde pone ">>man printf" debería poner ">>man -a printf" o ">>man 3 printf"
308 Apartado A.8.3 Donde pone "getchar(c)" debería poner "c= getchar()"
316 Ejercicio A.5 El número combinatorio debería ser "n sobre i" y no "i sobre n", además i va entre 0 y n
324 Primer trozo de código de B.1.4 Donde pone "printf("La suma de &d y %d..." debería poner "printf("La suma de %d y %d..."
332 Línea 4 Donde pone "cad new char..." debería poner "cad= new char..."
335 Tercera línea del main Donde pone "char *cad1,cad2;" debería poner "char *cad1, *cad2;"

CAPITULO 6

Página Lugar Corrección
10 Penúltima línea En el resultado final, donde pone "n(a/2-e/2)" debería poner "n(a/2+b-d-e/2)"
16 En la segunda línea de la primera fórmula Donde pone "sumatorio desde j=1 hasta 2i-1" debería poner "sumatorio desde j=1 hasta 2i-2" y en el resultado final donde pone "dn2/2" debería poner "d(n-1)n/2"

CAPITULO 7

Página Lugar Corrección
23 Antepenúltima línea del segundo párrafo Donde pone "con n=1.000 sería de más de 33 minutos" debería poner "con n=1.000 sería de más de 2 segundos"

CAPITULO 11

Página Lugar Corrección
125 Fórmula de NF(pos) Donde pone "longitud(pos)" debería poner "longitud(pal)"
132 En el trozo de código y en el primer párrafo Donde pone "mínimo" debería poner "máximo" y donde pone "min" debería poner "max"

CAPITULO 13

Página Lugar Corrección
190 Figuras 13.3 y 13.4 Las etiquetas de estas figuras están cambiadas. En la figura 13.3 debería poner "LC-FIFO" y en la 13.4 "LC-LIFO"

NOTA DE LOS AUTORES

Los autores agradecerán amablemente cualquier corrección realizada sobre el libro. Por favor, compruebe que se trata realmente de un error, y en ese caso indique claramente el capítulo, la página, el lugar y cuál es el error detectado. Envíe un e-mail a ginesgm@um.es


ULTIMA CORRECCIÓN: 19/11/2012


 

Ginés García Mateos
Facultad de Informática. Despacho 2.34.
Campus de Espinardo. Universidad de Murcia.
30100 Murcia (SPAIN)
Teléfono: +34 868 88 85 30
Fax: +34 868 88 41 51
E-mail: ginesgm@um.es