border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

  #1 (permalink)  
Antiguo 30-11-2002, 00:00:00
Avatar de imported_chiaravel
Administrator
 
Registrado: dic 2002
Ubicación: Buenos Aires - Argentina
Posts: 2.281
imported_chiaravel Valoración +2
Predeterminado Arboles Balanceados

Arboles Balanceados

Debido a la amabilidad de nuestro amigo Acalanto podemos contar con un aporte acerca de Árboles Balanceados.

Yo me bajé ese ejemplo y lo estuve mirando y ejecutando, lo cual me dio la sensación de ser una utilidad del tipo MSDN útil para hacer archivos de ayuda.

Quizás estoy muy lejos de la verdad, por eso quiero preguntar al amigo Acalanto o al que me pueda contestar.

Para que tipo de aplicación se usan estos Árboles Balanceados ?

Perdón por la ignorancia pero nunca use este tipo de técnica.

Suerte
Responder Con Cita
  #2 (permalink)  
Antiguo 30-11-2002, 00:00:00
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.266
acalanto ha deshabilitado la reputación
Predeterminado RE: Arboles Balanceados

RE: Arboles Balanceados

Los árboles balanceados o binarios tienen multitud de aplicaciones en diferentes áreas del conocimiento. En desarrollo informático son la base para mantener un sistema de base de datos perfectamente organizado por índices o claves de búsqueda. Existen diferentes tipos de organizar datos en una tabla (de datos valga la redundancia).

-LIFO (Last Input First Output) que es el que se utiliza habitualmente en el Stack de memoria por ejemplo en Asesembler no esta permitido realizar una asignación de valor entre un registro de procesador y un direccionador de memoria (P. Ej. MOV CS,AX, no está permitido). Gracias a esta particularidad podemos realizar lo siguiente:

mov ax, ;un valor de direccionamoento de memoria
push ax ;lo subimos a la pila
pop bp : lo asignamos al base pointer desde la pila.

...Truco Hecho...


-FIFO (Fisrt Input First Output). utilizado por los apuntadores de documentos en cola de impresión por ejemplo.


-Listas Encadenadas. Son aquellas en las que todo elemento conoce la posición de sus colaterales y es de gran utilidad en editores de texto. P. Ejemplo. Insertar una nueva linea de texto entre un número indeterminadamente grande de lineas es tan sencillo cómo poner la nueva línea al final de la tabla y reconstruir los punteros de las lineas anterior-siguiente que le correspondan (Otra forma sería hacer un bucle desde la línea de inserción hasta la última y desplazar toda la matriz (Puede ser demasiado lento).

-Árboles binarios balanceados. Con ellos podemos conseguir poner cada dato (que después deseemos buscar), prácticamente en el sitio que le corresponde. La técnica, aunque sencilla, resulta a menudo difícil de entender por lo abstracto. El árbol binario es una estructura de datos cuyas ramas crecen de forma organizada a medida que se le agregan items (nodos en nuestro caso). Si la estructuración del algoritmo es correcta siempre podemos asegurar que cada nodo tiene, en su nodo izquierdo un valor menor y en su nodo derecho un valor mayor. A su vez en nodo padre siempre debe de ser mayor que el apuntado. esto permite establecer reglas dicotómicas mediante las que en la primera búsqueda de un dato (siempre sobre el nodo raíz), ya descartamos la mitad del árbol (con todos los nodos que contiene, en la segunda la mitad de la mitad y así sucesivamente, por lo que aseguramos qué en tan sólo 8 consultas de nodos hemos encontrado el dato búscado (o no). Esta técnica es la utilizada por los índices de las bases de datos.

Yo personalmente lo utilizo en sustitución de las colecciones y diccionariois que ofrece Microsoft ya qué además de ser más rápida, me devuelve toda la información deseada y de momento no le he encontrado limitación. Puede servir para mantener las opciones de preferencia de usuario en vez de grabarlas en el registro de Windows ya que, entre otras cosas, nos permite trnasportarlas a otro equipo con sólo copiar el fichero de claves (El registro de windows es algo más engorroso transportarlo).

Tambien le he encontrado utilidad en la resolución de determinantes, ya que me permite conocer la posición de un dato en una matriz (por enorme que sea) con un mínimo esfuerzo y en un tiempo record.

En fin espero que todo este rollo os sea de tanta utilidad como la clase enviada que entre otras cosas se puede transformar en una DLL casi como está.

Un cordial saludo.
-Acalanto-</TR>
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 30-11-2002, 00:00:00
Avatar de imported_chiaravel
Administrator
 
Registrado: dic 2002
Ubicación: Buenos Aires - Argentina
Posts: 2.281
imported_chiaravel Valoración +2
Predeterminado Magistral

Magistral

Tu respuesta fue acorde a tus conocimientos que son elevadísimos.

En definitiva los Árboles Binarios son el reflejo actual de una vieja técnica de programación llamada metodo de Burbuja que permitia encontrar un elemento en un vector ordenado en pocos movimientos por mas que el vector tuviera miles y miles de elementos.

Como mi experiencia se realizó desde hace 17 años en Empresas comerciales, practicamente todas mis aplicaciónes fueron comerciales y de Gestión, por lo que no tuve la necesidad de recurrir a estas técnicas.

Pero tu sabes...cada día se aprende algo nuevo y es maravilloso que eso ocurra.

Muchas Gracias por tus aportes y espero que podamos todos disfrutar mucho tiempo mas de tu visita en este foro.

Un Abrazo

Responder Con Cita
  #4 (permalink)  
Antiguo 30-11-2002, 00:00:00
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.266
acalanto ha deshabilitado la reputación
Predeterminado RE: Arboles Balanceados

RE: Arboles Balanceados

efectivamente Pablo. Aunque no es exactamente el método de ordenación burbuja (o bubble), es posible usarlo como un algoritmo de ordenación. Si tenemos una tabla totalmente desordenada, añadimos uno a uno los items y después los recuperamos en perfecto orden.

!! Ojo que no admite valores numéricos por lo que, para ordenarlos correctamente los ddeberemos de justificar con ceros o espacios por la izquierda (1 = 000001) de lo contrarioi la lista ordenada nos la puede devolver tal como:

1
10
100
2
20
30
300
3000
4

etc..

Un cordial saludo
-Acalanto-</TR>
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #5 (permalink)  
Antiguo 17-09-2004, 01:00:00
Avatar de imported_chiaravel
Administrator
 
Registrado: dic 2002
Ubicación: Buenos Aires - Argentina
Posts: 2.281
imported_chiaravel Valoración +2
Predeterminado RE: Arboles Balanceados

RE: Arboles Balanceados

Obviamente estamos hablando de algo mas complejo que el famoso BUBBLE SORT (Que aprendí durante mi carrera en NCR Argentina), por lo que veo, mucho mas efectivo.

Supongo que es la base de la colección SortedList() de Visual Basic .NET.

Un Abrazo y Gracias Nuevamente.
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
ayuda con arboles B? djagu_26 JAVA (General) 1 19-11-2006 02:36:06
cómo manipular árboles binarios Hustler C# .NET 1 27-10-2006 21:36:31
Arboles moiselo Visual Basic.NET 2003 & 2005 0 17-09-2004 01:00:00


La franja horaria es GMT. Ahora son las 23:10:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right