From c94ab535ad347b075be2a6a9d7cef2d2f245bb16 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 17 May 2004 20:14:02 +0000 Subject: [PATCH 1/1] Doc para luca --- emufs/indice_b.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/emufs/indice_b.c b/emufs/indice_b.c index 0e99b7e..38576ae 100644 --- a/emufs/indice_b.c +++ b/emufs/indice_b.c @@ -8,18 +8,35 @@ #define MIN_HIJOS(x) (CANT_HIJOS(x)/2) /* Auxiliares */ +/* Graba el nodo en el archivo */ static void b_grabar_nodo(INDICE *idx, int id, char *data); +/* Da el ID del proximo nodo a poder ser utilizado */ static int b_ultimo_id(INDICE *idx); +/* Lee un nodo desde el archivo */ static char *b_leer_nodo(INDICE *idx, int id); +/* Crea un nodo en el archivo y lo retorna. En i se pone el ID asignado */ static char *b_crear_nodo(INDICE *idx, int *i); +/* Lee el header de un nodo y lo guarda en header */ static void b_leer_header(char *src, B_NodoHeader *header); +/* Actualiza el header de un nodo desde header */ static void b_actualizar_header(char *src, B_NodoHeader *header); +/* Retorna el array de claves del nodo (esta data modifica directamente el bloque + * por eso no es necesario usar un actualizar_claves + */ static B_NodoEntry *b_leer_claves(char *src, B_NodoHeader *header); +/* Inserta una clave en el nodo de manera iterativa */ static void b_insertar_en_nodo(INDICE *idx, CLAVE clave, INDICE_DATO dato, int nodo_id, char *nodo, int hijo1, int hijo2); +/* Esto es para asegurar el orden de los hijos luego de partir, en el caso de que + * lo que se parta sea la raiz + */ static int b_elegir_izquierdo(INDICE *idx, int a, int b); +/* Borra una clave del arbol */ static void b_borrar_clave(INDICE *idx, char *nodo, int nodo_id, CLAVE k); +/* Le pide al hermano derecho del nodo una clave cuando se eliminan claves */ static void b_pasar_clave_derecha(char *, int, char *, int, char *, int, int); +/* Le pide al hermano izquierdo una clavfe cuando se eliminan claves */ static void b_pasar_clave_izquierda(char *, int, char *, int, char *, int, int); +/* Junta 2 nodos y hace uno solo */ static void b_fundir_nodo(char *, int, char *, int, char *, int, int); void emufs_indice_b_crear(INDICE *idx) -- 2.43.0