Arbol_4

3
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> #include <string.h> #define MALLOC(x) ( (x *) malloc (sizeof(x))) #define FOREVER 1 #define YES 1 #define NO 0 #define BELL "\007" #define ESC 27 #define ORDER 2 #define MAX_NODE 2 * ORDER typedef int keytype; typedef struct element_def { keytype key; char nombre[20]; char direccion[20]; char carrera[3]; int plan; int semestre; }element; typedef struct btree_node { struct btree_node *parent; int no_of_elements; element elements[MAX_NODE]; struct btree_node *children[MAX_NODE + 1]; }BTREE_NODE; typedef BTREE_NODE *btree_ptr; Añadir /********************************************************************/ void add_an_element(btree_ptr *root_ptr) { element new_element; char buffer[81]; clrscr(); printf("\n\n\t\t ANADIR AL ARCHIVO");

description

Arboles estructuras de bases de datos

Transcript of Arbol_4

#include #include #include #include #include

#define MALLOC(x) ( (x *) malloc (sizeof(x)))#define FOREVER 1#define YES 1#define NO 0#define BELL "\007"#define ESC 27#define ORDER 2#define MAX_NODE 2 * ORDER

typedef int keytype;

typedef struct element_def { keytype key; char nombre[20]; char direccion[20]; char carrera[3]; int plan; int semestre; }element;

typedef struct btree_node { struct btree_node *parent; int no_of_elements; element elements[MAX_NODE]; struct btree_node *children[MAX_NODE + 1]; }BTREE_NODE;

typedef BTREE_NODE *btree_ptr;Aadir/********************************************************************/void add_an_element(btree_ptr *root_ptr){ element new_element; char buffer[81];

clrscr(); printf("\n\n\t\t ANADIR AL ARCHIVO"); printf("\n\t\t------------------"); printf("\n\n\tBOLETA: "); gets(buffer); new_element.key = atol(buffer); printf("\n\tNOMBRE: "); gets(new_element.nombre); printf("\n\tDIRECCION: "); gets(new_element.direccion); printf("\n\tCARRERA: "); gets(new_element.carrera); printf("\n\tPLAN: "); gets(buffer); new_element.plan=atoi(buffer); printf("\n\tSEMESTRE: "); gets(buffer); new_element.semestre= atoi(buffer); insert_btree(root_ptr, new_element);} Modificar/********************************************************************/void modify_an_element(btree_ptr root_ptr){ btree_ptr node_ptr; int index; char buffer[81];

clrscr(); printf("\n\n\t\tMODIFICACIONES"); printf("\n\t\t--------------"); printf("\n\BOLETA A MODIFICAR: "); gets(buffer); search_btree(root_ptr, atol(buffer), &node_ptr, &index); if(node_ptr == NULL) { printf("\n\t\tLA BOLETA NO SE ENCUENTRA EN EL ARCHIVO"); key_to_continue(); return; } printf("\n\tDIGITE NUEVO DATOS O PARA MANTENER EL ANTERIOR"); printf("\n\t------------------------------------------------------"); printf("\n\tNOMBRE [%s]: ",node_ptr->elements[index].nombre); get_string(node_ptr->elements[index].nombre); printf("\n\tDIRECCION [%s]: ", node_ptr->elements[index].direccion); get_string(node_ptr->elements[index].direccion); printf("\n\tCARRERA [%s]: ",node_ptr->elements[index].carrera); get_string(node_ptr->elements[index].carrera); printf("\n\tPLAN [%d]: ",node_ptr->elements[index].plan); gets(buffer); if(buffer[0] != '\0') node_ptr->elements[index].plan = atoi(buffer); printf("\n\tSEMESTRE [%d]: ", node_ptr->elements[index].semestre); gets(buffer); if(buffer[0] != '\0') node_ptr->elements[index].semestre = atoi(buffer);}

Salvar/********************************************************************/void save_part_btree(btree_ptr root_ptr){ char ch, treefilnam[11]; FILE *file_ptr;

if(root_ptr == NULL) { printf("\n\t\tERROR: EL ARBOL ACTUAL ESTA VACIO!"); key_to_continue(); return; } printf("\n\tDame el nombre del archivo (nuevo o viejo) a utilizar : "); printf("\n\t\tEJEMPLO : ARCHIVO1.DAT => "); scanf("%15s", treefilnam); if((file_ptr = fopen(treefilnam, "w+b")) == NULL) { printf("\n\n\tERROR: NO SE PUEDE ABRIR EL ARCHIVO!"); key_to_continue(); return; } write_to_disk(root_ptr, file_ptr); fclose(file_ptr);}