Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Que tipo de arbol debo usar? (https://www.clubdelphi.com/foros/showthread.php?t=29555)

miguel_e 25-01-2006 15:25:00

Que tipo de arbol debo usar?
 
Hola a todos, tengo que hacer un pequeño trabajo para la escuela, pero tengo dudas, el ejercicio consiste en hacer un diccionario utilizando una estructura de datos especificamente arboles, la aplicacion va a tener varios diccionarios cada uno con un idioma distinto y estos a su vez van a estar en una lista, entonces lo que pide son agregar palabra , traducir a un idioma, etc hasta ahi todo bien, lo que no se es que tipo de arbol debo utilizar porque un arbol binario no le veo la gran utilidad, un arbol normal tampoco, diganme si ustedes conocen otro tipo o si alguno de estos es el indicado y porque?????, de paso si conocen algunas paginas con documentacion se lo agredeceria

muchas gracias salu2
miguel_e

marcoszorrilla 25-01-2006 16:05:32

Yo utilizaría una tabla, con tantos campos como idiomas x 2

1 Palabra
2 Definición.

1 Trabajo
2 definición
3 Arbeit
4 .......
5 travaille
6.........
7 Work
8.....


Un Saludo.

reina 25-01-2006 17:16:56

Hola! bueno te doy unas puntas por si tu problema lo tienes que resolver..usando la estructura de datos.."arboles".
Tienes:
-Arboles Binarios: los cuales tiene 2 nodos..como lo dice su nombre.
-Arboles AVL: los cuales son arboles balanceados en altura.
-Arboles multicaminos: que es como los binarios..pero en vez de tener 2 punteros..tiene r registros y r+1 apuntadores, es para manejarlos con menor profundidad..
-Arboles B: se hacen de arriba para abajo...permite que este balanceado..tiene n nodos y n+1 apuntadores..n define el orden de arbol..
-Arboles B*: es parecido al de arriba..pero cada nodo esta lleno porn lo menos en 2/3 partes ..en si los nodos hay claves o registros se entiende?..bueno te podria nombrar..unos cuantos arboles mas..ja ya que estoy preparando un final sobre eso..

En si no quiero hacerte una teoria de todo fijate cual..es el que mas te conviene..con respecto a cada tipo de arbol tiene sus reglas de inserccion y eliminacion..investiga si te sirven.
Espero contribuya en algo a tu problema..saludosss

LA PATRIA SERA LIBRE

Norberto 25-01-2006 18:48:02

Estructuras de árboles
 
Me imagino que el objetivo por el cual te pidieron utilizar una estructura de arbol es para ordenar las palabras del diccionario de manera ascendente (o descendente aunque es más común ascendente). Cualquier tipo de árbol te funciona para hacer esto, es decir mantener un orden ascendente por cada palabra del diccionario, y yo te recomendaría el árbol binario por ser el más sencillo, aunque no le veas mucho el caso.

EJEMPLO:
Si quieres insertar las siguientes palabras a la estructura de árbol:
casa
vehículo
empleado
árbol
computadora
perro
gato

tomas la primer palabra y la insertas en el nodo raiz, luego tomas la segunda palabra y la comparas con la primer palabra, si la palabra es mayor la insertas en el nodo derecho y si es mayor la insertas en el nodo izquierdo, en este caso vehículo es mayor que casa (la "v" de vehículo va después de "c" de casa en el abecedario), ejemplo empleado es mayor que casa y menor que vehículo, así que se insertaría a la izquiera de vehículo.

el árbol binario te quedaría de la siguiente forma:


casa (nodo raiz)
|- árbol (nodo izq)
|-vehículo (nodo der)
|- empleado (nodo izq)
|- computadora (nodo izq)
|- perro (nodo der)
|- gato (nodo izq)

Este sería tu diccionario en español, y si tienes más de un diccionario, entonces tendrías una estructura que es una lista de árboles, es decir una lista de diccionarios que contienen árboles de palabras. Y me imagino que cuando quisieras consultar una palabra, quisieras saber su traducción, así que yo le agregaría al nodo un apuntador al nodo de la palabra del arbol del otro idioma, pero no sé si te estén pidiendo esto.

Saludos

Norberto

Norberto 25-01-2006 18:54:11

corrección
 
En mi mensaje anterior la cosa esta le quitó los espacios al arbol de texto que puse como ejemplo y se desfiguró.

Quedaría:
casa (nodo raiz)
árbol (nodo izq de casa) vehículo (nodo der de casa)
empleado (nodo izq de vehículo)
computadora (nodo izq de empleado)
perro (nodo der de empleado)
gato (nodo izq de perro)


saludos

Norberto

miguel_e 25-01-2006 19:52:20

Muchas gracias a todos pues si tengo pensado que cada nodo tenga una referencia a la palabra(nodo) en el idioma siguiente en caso que haya por supuesto. Si ya habia pensado en los arboles binarios, de hecho son los que mas conozco el gran probema de ellos es que si le dan por meter la informacion ordenada queda muy desvalanciado el arbol, por eso estaba buscando otras ideas, no se, trato de buscar la idea mas eficiente, aunque esto trabajo no lo lleva, me gusta intentar hacer las cosas lo mejor posible, creo que lo voy a empezar a hacer asi ya que no dispongo de mucho tiempo para entregarlo , pero me gustaria que siguieran aportando ideas para seguir conociendo gracias a todos

salu2
miguel_e

miguel_e 25-01-2006 19:59:42

Muchas gracias a todos pues si tengo pensado que cada nodo tenga una referencia a la palabra(nodo) en el idioma siguiente en caso que haya por supuesto. Si ya habia pensado en los arboles binarios, de hecho son los que mas conozco el gran probema de ellos es que si le dan por meter la informacion ordenada queda muy desvalanciado el arbol, por eso estaba buscando otras ideas, no se, trato de buscar la idea mas eficiente, aunque esto trabajo no lo lleva, me gusta intentar hacer las cosas lo mejor posible, creo que lo voy a empezar a hacer asi ya que no dispongo de mucho tiempo para entregarlo , pero me gustaria que siguieran aportando ideas para seguir conociendo gracias a todos

salu2
miguel_e

reina 25-01-2006 20:09:40

holas! again..bueno si buScas simplicidad..quedate con los binarios..son faciles de implementar pero menos eficientes en la busqueda..ya que siempre tendras el problema de desbalanceo..los arboles balanceados..son mas dificiles de hacer!. mmm tb podrias implementar una especie de arbol de estructuras..donde tengas un arbol..de referencias..osea de indices..y que cada indice..apunte a una estructura que contenga datos emparentados..como por ejemplo..los datos que empiezen con una determinada letra..
En si tambien deberias tener en cuenta los metodos de busqueda a la hora de encontrar una palabra..porque mas alla del diccionario..de la carga de este..alguna utilidad tendra que tener o no?..en la red..hay miles de implementaciones de diferentes arboles..y algortimos de busquedas..
Espero que tengas suerte!

LA PATRIA SERA LIBRE

OSKR 25-01-2006 23:22:33

Lo mejor q puedes hacer es una Lista de Adyacencia donde cada fila puede ser la palabra y su lista apuntada los idiomas

miguel_e 26-01-2006 15:01:56

OK, utilize un arbol binario, gracias a todos por sus comentarios, quizas despues siguamos hablando de arboles.

salu2
miguel_e

Osvaldo Mercado 21-02-2007 22:19:46

Hola
 
Me pregunto si uds. no saben si ya hay un codigo de arboles (ya sean binarios o muticampos) es delphi y o a donde lo puedo conseguir...

gracias

atte.

Osmer
:confused:


La franja horaria es GMT +2. Ahora son las 19:07:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi