domingo, 7 de junio de 2015

Tabla Hash con direccionamiento abierto

Lo primero que hace es crear la tabla estática de esta forma...


Luego al ingresar datos obtiene una llave que seria del 0 hasta el n tamaño.


En algunas ocasiones la llave sale la misma, por lo tanto se usa la función de resolución de colisiones de una tabla de re-direccionamiento abierto.

  

sábado, 6 de junio de 2015

Dividir un árbol entrelazado

Lo que se hace es utilizar el recorrido preorden_entrelzado y con una variable bandera ingresar los daros a cada árbol correspondiente.

La parte mas importante el código es esta:  


 if(lado==0){insertar_entrelazados(&n1,raiz->llave);lado=1;}else
      {insertar_entrelazados(&n2,raiz->llave);lado=0;}


ya que es la que nos indica de que lado sera ingresado el dato.


En esta imagen se puede ver que en los dos arboles de abajo los datos quedaron divididos...



de un árbol no balanceado a un árbol balanceado

Lo que realiza este programa es que al ingresar un árbol en una función binaria, no nos aseguramos que el árbol este balanceado por ejemplo el ingreso de estos números en este orden:

12,1,5,21,25,2,0,32,37,199,500,322,0

Nos genera un árbol de está manera:


Por lo tanto lo que se hace es realizar un recorrido de un binario, en este caso use el preorden, y mande cada dato a una función que genere un árbol AVL por lo tanto nos quedaría de esta manera.



miércoles, 3 de junio de 2015

Recolector de Basura en C++

El recolector de basura lo que haces es que al terminarse los nodos disponibles (con simbolo "+") en el anillo buscar a todos los nodos en mi caso puestos con un simbolo "#" que me indica que ya no lo uso para unirlos de nuevo al anillo de bloques y seguir trabajando.

En este ejmplo se ve que las casillas con símbolos "-" no se unen ya que estas aun están siendo usadas dentro del programa.
y los que están con símbolo "+" ya fueron unidos al anillo de bloques que antes estaban con el símbolo "#" que significaba que ya eran basura.




Creación del Bloque de Anillos en c++

El bloque de anillos tiene un tamaño finito que el programador define.
En este ejemplo coloco una estructura de una tabla que apunta a nodos, los cuales están unidos en un circulo entre ellos mismos.
Cuando ya tenemos realizado de está forma:

Hay una función que pide nodos, y otra que maneja la estructura y realiza la operación.

Acá el video de creación de la función del bloque de anillos






martes, 2 de junio de 2015

Excel en Borland C++ 5.02

Es este video se muestra el funcionamiento básico del programa...

El diseño del programa esta hecho con un char de 13 espacios el cual lo imprimo y le doy la apariencia que tiene, los datos que se ingresan son manejados a nivel de nodos que están unidos en una matriz.