Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int cargar_arbol_de_archivo_ordenado(t_arbol* pa, const char* path){ ///Retorna TODO_OK, ERROR_ARCHIVO o SIN_MEM
- FILE *p_alu=fopen(path,"rb+");
- FILE *p_archivo_preorden=fopen("archivo_pre_orden.dat","wb+");
- t_info info;
- if(!p_alu || !p_archivo_preorden)
- return 0;
- /// if(!p_alu) ///ANTES PREGUNTABA SOLO POR ESTE
- /// return 0;
- int cant_reg,ini=0,fin;
- fseek(p_alu,0,SEEK_END);
- cant_reg=ftell(p_alu)/sizeof(t_alumno);
- fin=cant_reg-1;
- /// generar_arbol_con_archivo(pa,p_alu,ini,fin); ///ANTES SOLO MANDABA ESTOS PARAMETROS
- generar_arbol_con_archivo(pa,p_alu,p_archivo_preorden,ini,fin); ///CARGO EL NUEVO ARCHIVO QUE CREE
- rewind(p_archivo_preorden); ///VUELVO AL INICIO DEL ARCHIVO QUE YO CARGUE
- fread(&info,sizeof(t_info),1,p_archivo_preorden);
- while(!feof(p_archivo_preorden)){ ///CON ESTE WHILE CARGO TODO EL ARCHIVO EN EL ARBOL
- insertar_en_arbol_bin_busq_res(pa,&info,comparar);
- fread(&info,sizeof(t_info),1,p_archivo_preorden);
- }
- return 1;
- }
- void generar_arbol_con_archivo(t_arbol *pa,FILE *p_alu,FILE *p_archivo_preorden,int in,int fin){
- int mitad;
- t_info info;
- t_alumno alu;
- if(in>fin)
- return;
- mitad=(in+fin)/2;
- fseek(p_alu,mitad*sizeof(t_alumno),SEEK_SET);
- fread(&alu,sizeof(t_alumno),1,p_alu);
- info=alu;
- /// insertar_en_arbol_bin_busq_res(pa,&info,comparar); ANTES CARGABA EN EL ARBOL..
- fwrite(&info,sizeof(t_info),1,p_archivo_preorden); ///AHORA CARGO EN EL ARCHIVO..
- generar_arbol_con_archivo(pa,p_alu,p_archivo_preorden,in,mitad-1);
- generar_arbol_con_archivo(pa,p_alu,p_archivo_preorden,mitad+1,fin);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement