ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Operaciones sobre archivos en C++

Keylor JesúsPráctica o problema11 de Noviembre de 2015

1.014 Palabras (5 Páginas)241 Visitas

Página 1 de 5

Administración de archivos

Operaciones sobre archivos en C++

#include

#include "fstream"

//declarar una variable de archivo

fstream fp1("archivoAB2.dat", ios::in | ios::out |ios::binary );//|ios::trunc );

//escribir en el archivo una Estructura

fp1.seekg(index*sizeof(reg));

fp1.write(reinterpret_cast (®), sizeof(reg));

//Leer del archivo una Estructura

fp2.seekg(index*sizeof(reg2),ios::beg);

fp2.read(reinterpret_cast (®2), sizeof(reg2));

//cerrar el archivo

fp1.close();

//validar que el archivo este asignado

if(!fp1){

    cout <<"error en la apertura del archivo";

    }

//conocer la longitud del archivo

long fin_archivo(){

    long n;

    fp1.seekg(0, ios::end);

    n = fp1.tellg();

    n= (n/sizeof(reg))-1;

    return n;

}


Arboles binarios

Práctica manual.

Ejemplo Inserción 18, 5, 12, 32, 10, 2, 25, 81, 6, 16, 3, 47, 38.

#reg

izq

info

der

0

1

2

3

4

5

6

7

8

9

10

11

12

Práctica:

Inserción 10, 25, 6, 13, 8, 18, 12, 32, 16, 3, 7, 9, 22, 11.

#reg

izq

info

der

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Práctica de borrado. Borrar el # 8.

#reg

izq

info

der

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Como práctica de laboratorio realizar el siguiente programa

  1. Defina una estructura o clase de árbol binario para almacenar en archivo.

La estructura de un árbol binario para archivo sería

struct arb_bin{

public:

    int info;//del tipo de datos que desee, puede ser estudiante, curso…

    long izq, der;

   

    arb_bin(){

        info= 0;

        izq=0;  

        der=0;

    }

}reg;

  1. Codifique del método de insertar en árbol binario ordenado en archivo.

Recuerde las instrucciones para escribir en archivo y para posicionarse aleatoriamente en el archivo.

fstream fp1("archivoAB.dat", ios::in | ios::out |ios::binary| ios::trunc ); 

if(!fp1){

cout <<"error en la apertura del archivo";

}

Empieze leyendo la raiz del arbol, esta siempre la encontrará en el registro cero de archivo.

fp1.seekg(0);

fp1.read(reinterpret_cast<char *> (®), sizeof(reg));

Y para posicionarse al final del archivo:

fp1.seekg(0, ios::end);//siempre escriba el nuevo registro al final del archivo.

fp1.write(reinterpret_cast<char *> (®), sizeof(reg));

  1. Codifique del método de imprimir ordenado en árbol binario ordenado en archivo.
  2.  Codifique del método de buscar una llave X en árbol binario ordenado en archivo.
  3. Codifique del método de borrar una llave X en árbol binario ordenado en archivo.

Arboles M vías:

La estructura de un árbol binario para archivo sería

struct arb_M{

public:

    int llave[M-1];

    long rama[M];

   

    arb_M(){

       

    }

}

Este árbol crece por las ramas, no es balanceado.

Ejemplo de Inserción:

 10, 25, 6, 13, 8, 18, 12, 32, 16, 3, 7, 9, 22, 11.

M = 3.

#reg

Rama 0

Llave 0

Rama 1

Llave 1

Rama 2

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14


Árbol B

Árbol balanceado por su altura. Todas las hojas están en el mismo nivel. Los tiempos de búsqueda en el peor de los casos se debe llegar a un registro hoja, por tanto la cantidad de accesos es la altura máxima del árbol.

M = 5.

Ejemplo de Inserción:

10, 25, 6, 13,42,37, 8, 18, 12, 32, 16, 3, 7, 9, 22, 11.

#reg

Rama 0

Llave 0

Rama 1

Llave 1

Rama 2

Llave 2

Rama 3

Llave 3

Rama 4

cuenta

0

6

10

13

25

4

1

Se inserta el 42, 37, 8, 18, 12, 32, 16, 3, 7, 9, 22, 11.

Siempre se inserta en los registro HOJA

#reg

Rama 0

Llave 0

Rama 1

Llave 1

Rama 2

Llave 2

Rama 3

Llave 3

Rama 4

cuenta

0

2

13

1

1

1

18

25

37

42

4

2

6

8

10

12

4

3


Se inserta el 32, 16, 3, 7, 9, 22, 11.

Siempre se inserta en los registro HOJA

#reg

Rama 0

Llave 0

Rama 1

Llave 1

Rama 2

Llave 2

Rama 3

Llave 3

Rama 4

cuenta

0

2

8

4

13

1

32

3

3

1

16

18

22

25

4

2

3

6

7

3

3

37

42

2

4

9

10

11

12

4

5

Se inserta el 24.

Siempre se inserta en los registro HOJA

#reg

Rama 0

Llave 0

Rama 1

Llave 1

Rama 2

Llave 2

Rama 3

Llave 3

Rama 4

cuenta

0

2

8

4

13

1

22

5

32

3

4

1

16

18

2

2

3

6

7

3

3

37

42

2

4

9

10

11

12

4

5

24

25

2

...

Descargar como (para miembros actualizados) txt (16 Kb) pdf (259 Kb) docx (41 Kb)
Leer 4 páginas más »
Disponible sólo en Clubensayos.com