• Viernes 15 de Noviembre de 2024, 05:51

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - efra1481

Páginas: [1]
1
Diseño de Algoritmos / Re: Arboles Binarios en Visual Basic
« en: Jueves 19 de Agosto de 2004, 12:29 »
Cita de: "acalanto"
Yo hace unos días he implementado un árbol binario en Vbasic que me parece bastante potente.

Doy por entendido que sabes manejar bien la programación porque de lo contrario es probable que te hagas un pequeño lio pero prueba lo siguiente:

'Estructura Para las claves
Type reg
   loReg as long
   HiReg as long
   Key as string
end type

'Estructura para los nodos
Type Nodos
   IdKey as string
   items as long
   regs() as reg
end type

public Nod() as Nodos
Public idPtr as integer


'Añadir un nuevo árbol de claves (aqui supongo que idPtr está iniciado a '0')
Public Sub AddNode(NombreArbol as string)
     IdPtr=IdPtr + 1
     redim preserve Nod(1 to IdPtr)
     nod(idptr)=NombreArbol
     nod(idPtr).items=0
end sub

'Para añadir una clave en un árbol
Public AddKey(Arbol as string, NewKey as string, Valor as string)
    'Aqui pondremos una función que busque si la clave existe
    if existKey(Arbol,NewKey,Valor) then
        'Código para actualizar el valor de la key
    else
        Nod(idArbol(Arbol)).items=Nod(idArbol(Arbol)).items+1
        redim preserve Nod(IdArbol(Arbol)).regs(1 to Nod(idArbol(Arbol)).items)
        Nod(IdArbol(Arbol)).regs(Nod(idArbol(Arbol)).items).key=newkey
        Nod(IdArbol(Arbol)).regs(Nod(idArbol(Arbol)).items).loreg=<nodo contiene clave menor>
        Nod(IdArbol(Arbol)).regs(Nod(idArbol(Arbol)).items).hireg=<nodo contiene clave mayor>
    end if
end sub



Este código te muestra la capacidad de Vbasic de disponer dde algo parecido a la memoria dinámica redimensionando Arrays de tipos con la directiva PRESERVE que mantiene el contenido de la matriz.

Naturalmente tendrás que desarrollar las funciones de búsqueda, eliminación, recorrido etc...y si lo metes todo dentro de una clase tendrás un sistema de árbol balanceado que puedes usar para guardar claves de búsqueda en un fichero etc... ya que grabando en un fichero binario la estructura NOD(), lo podrás leer tantas veces como desees.

Te aconsejo te hagas con el siguiente libro :

PROGRAMACION EN C++ de Luis Joyanes Aguilar (Editorial McGrawHill) es un poco caro pero las estructuras de datos las explica realmente bien (y esa algorítmia la puedes aplicar a cualquier lenguaje que conozcas lo suficientemente bien)

Espero que este rollo te sea útil

Un saludo
Compadre necesito el programita de los recorridos  de los arboles en visual basic,  nada que he podido y lo necesito para la U, si me puedes ayudar te lo agradeceria mucho...ok.....


Gracias....

efracor03@hotmail.com

Páginas: [1]