Laburo España: 250.000 ofertas de empleo

Coyote: Modus Vivendi - De regreso a los origenes.

¿El Coyote estara de regreso?

   
  Arbol binario en Visual Basic  

Si, tal como lo leyeron mis queridos cuatro lectoras y tres lectores, 5 enemigos y 12 hate fans, he dicho que hoy voy a poner la manera de implementar un ARBOL BINARIO, en un programa de Visual Basic (yo se que mis mas amados amigos, lloraran hasta las lagrimas al ver cuan bizarro se ha vuelto el mundo) a traves de un arreglo.

Por favor, a todos mis hate fans, les debo decir que el tiempo que inverti en el, no fue mas que una hora maximo, lo "bonito" de este codigo, es el algoritmo, no la FORMA de la aplicacion, asi que no se pongan ñoños y comiencen con su tonterias de: "La forma esta bien gacha", "yo la pude haber hecho mejor", "mi abuelita con sus reumas y artitritis lo hubieran hecho as rapido". Cualquier comentario de esta indole, pasara a formar parte, de las 15,348 cosas que me vienen valiendo madres.

El codigo esta aqui:
http://mx.geocities.com/coyote_software/teoria/Arbol.zip

La estructura, es un burdo arreglo estatico (asi que no le metan mas de 101 nodos) de tipo:
Public Datos(100, 2) As Integer
En donde Datos(N, 0) es el dato del "nodo" (a poco no sabian que se puede usar el elemento 0 del arreglo... no me sorprende), Datos(N, 1) es la referencia al "nodo" izquierdo y Datos(N, 2) al derecho.

Se inserta los nodos con la siguiente funcion:
Sub InsertaNodo(Ptr As Integer)
If Maximo = -1 Or Ptr = -1 Then
Maximo = Maximo + 1
' Creamos el nuevo nodo
CreaNodo
' Asignamos la posicion al anterior, dependiendo de si es izq o derecho
If Pointer > -1 Then
If Izq = True Then
Datos(Pointer, 1) = Maximo
Else
Datos(Pointer, 2) = Maximo
End If
End If
Else
' Asignamos el apuntador al anterior
Pointer = Ptr
If Dato < Datos(Ptr, 0) Then
Izq = True
InsertaNodo (Datos(Ptr, 1))
Else
Izq = False
InsertaNodo (Datos(Ptr, 2))
End If
End If
End Sub

Como ven, hice uso de la recursividad y emule los nulos (recuerden que yo apunto al element 0 del arreglo, pa' no desperdiciar ese espacio de memoria) con el valor -1 (si preguntan el porque.... definitivamente no tienen perdon de Dios!!!).

Aqui lo mas facil son los recorridos:
Sub Infijo(Ptr As Integer)
If Ptr <> -1 Then
Infijo (Datos(Ptr, 1))
Mostrar = Mostrar & Datos(Ptr, 0) & ", "
Infijo (Datos(Ptr, 2))
End If
End Sub



Sub Prefijo(Ptr As Integer)
If Ptr <> -1 Then
Mostrar = Mostrar & Datos(Ptr, 0) & ", "
Prefijo (Datos(Ptr, 1))
Prefijo (Datos(Ptr, 2))
End If
End Sub

Sub Posfijo(Ptr As Integer)
If Ptr <> -1 Then
Posfijo (Datos(Ptr, 1))
Posfijo (Datos(Ptr, 2))
Mostrar = Mostrar & Datos(Ptr, 0) & ", "
End If
End Sub

Pero como se que muchos de ustedes creen que yo me siento un "Dios programador", pos ahi les dejo este programa a su consideracion. Dudo que exista algo asi en Internet, asi que no digan que me lo pirateo (porque de todo se quejan los amantes del VB). Aun despues de ver, que los arboles se pueden "hacer" en VB, sigo pensando que es una porqueria, y el que piense diferente y me quiera joder insultandome, le tengo el siguiento reto: Traten de EMULAR un Arbol AVL y cuando terminen de hacerlo, ya pueden venir a cagar el palo a insultarme (eso les tomara, minimo dos meses).


Gente en contra del sistema: 1.
Agregado en el expediente de: Son Programatikon
Este wey dijo: Victor Ivan Mendez Castillo

 
  El 24 de mayo de 2005 a las 21:12:15, los ilustre con esto.  


  Los lectores opinan:  

oye la verdad no se programar en visual basic pero en mi escuela me dejan hacerlo y me piden programas que realice pero la verdad no tengo idea ¿me podrias enseñar o ayudar porfavor?

pamela ha dicho!!,
El 29 de agosto de 2005 a las 20:55:20



Recordar datos

Referencia

URL para referencias o trackbacks

 
   
   
LaInformacion.com lainformacion.com - Medio Oficial de los Premios Bitacoras 2009