|
|
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
|