elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Balance de un arbol binario ordenado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Balance de un arbol binario ordenado  (Leído 12,114 veces)
nico56

Desconectado Desconectado

Mensajes: 246


Ver Perfil
Balance de un arbol binario ordenado
« en: 2 Octubre 2009, 19:49 pm »

Hola que tal, este es mi primer mensaje en este foro, ya vengo de varios foros donde se creen que saben algo de computacion y no saben nada pero de este me preguntaron si lo habia visitado y heme aqui vamos a ver que tal  ::), el asunto es el siguiente, tengo el siguiente algoritmo pero no se como pasarlo a un pseudocodigo, queria ver si me podian dar una mano, el algotimo consiste en:

1.- Leer el arbol "inorder" y almacenar sus elmentos en una estructura secuencial (array o lista).

2.- Destruir el arbol mediante una poda "posorder".

3.- Reconstruir el arbol tomando el conjunto almacenado en el paso (1) utilizando el procedimiento "insertarOrdenado", haciendolo mediante particiones medias recursivas.

Tengo basicamente problemas con el paso (1) y (3). Para la poda del arbol ya he hecho una funcion que se le pasa como argumento un puntero al nodo raiz de ese arbol.

Desde ya gracias y saludos.


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Balance de un arbol binario ordenado
« Respuesta #1 en: 3 Octubre 2009, 17:13 pm »

Puedes guadar el arbol con alguna funcion recursiva bastara, todo esto en un ArrayList, no se en que lenguaje estes trabajando, sinceramente recomiendo java ya que tiene muchas funciones ya diseñanas como el ArrayList.


Saludos


En línea

nico56

Desconectado Desconectado

Mensajes: 246


Ver Perfil
Re: Balance de un arbol binario ordenado
« Respuesta #2 en: 3 Octubre 2009, 18:48 pm »

No estoy trabajando en ningún lenguaje especifico, justamente como dice el primer mensaje debo hacer un "psedocodigo". Tampoco se como volcar el árbol en un "array list" con una función recursiva, si no no hubiera creado este tema :P .
En línea

nico56

Desconectado Desconectado

Mensajes: 246


Ver Perfil
Re: Balance de un arbol binario ordenado
« Respuesta #3 en: 4 Octubre 2009, 21:37 pm »

 :silbar: :silbar: :silbar:
En línea

nico56

Desconectado Desconectado

Mensajes: 246


Ver Perfil
Re: Balance de un arbol binario ordenado
« Respuesta #4 en: 15 Octubre 2009, 19:36 pm »

y al final que tanta fama le hacen a este foro...
En línea

-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: Balance de un arbol binario ordenado
« Respuesta #5 en: 15 Octubre 2009, 20:14 pm »

y al final que tanta fama le hacen a este foro...
vaya, mira que nadie te va a hacer la tarea y menos si vienes de ofensivo, si no sabes como recorrer un arbol en inorder y tampoco estás aprendiendo modales te están robando la plata así que mira a ver que haces.

Código
  1. ArrayList tour;
  2. private void inOrder(TreeNode node) {
  3. if(node == root) {
  4. tour = new ArrayList();
  5. }
  6. if(node != null) {
  7. inOrder(node.getLeft());
  8. tour.add(node.getValue());
  9. inOrder(node.getRight());
  10. }
  11. }

Con eso  lo recorres en inorder, el algoritmo está en java, pero, debo suponer que ya tienes toda la lista enlazada hecha lo que equivale a ArrayList e igualmente el arbol con lo que le envias al método la raíz del árbol.

Para el punto 3, se supone que según lo que dice ahí ya tienes la función insertar ordenado, con lo que sería tomar cada valor de la lista enlazada e insertarlo, no importa el orden ya que según el nombre de la función sugiere que ordena.

No indicas que tipo de arbol es así que puse el algoritmo sobre un árbol binario que fue el que encontré ahora en mi PC.

No especificas mucho en tu post, ni siquiera colocas qué códigos tienes, como para que andes de arrogante.
En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
nico56

Desconectado Desconectado

Mensajes: 246


Ver Perfil
Re: Balance de un arbol binario ordenado
« Respuesta #6 en: 16 Octubre 2009, 00:28 am »

Gracias, pero mira vamos a la primera parte del algoritmo, no es que no se hacer la lectura inorder, basicamente lo que no entiendo de tu codigo es esto.

Código:
if(node == root) {
tour = new ArrayList();
}
En línea

-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: Balance de un arbol binario ordenado
« Respuesta #7 en: 16 Octubre 2009, 00:35 am »

Gracias, pero mira vamos a la primera parte del algoritmo, no es que no se hacer la lectura inorder, basicamente lo que no entiendo de tu codigo es esto.

Código:
if(node == root) {
tour = new ArrayList();
}
Si el nodo que recibe la función es igual a la raiz del árbol, entonces quiere decir que el recorrido es nuevo, porque la raíz es el primer nodo así que la lista enlazada se inicializa, sino se verifica que no sea nulo y se hacen las llamadas recursivas ya que en inorder se lee, primero el nodo hijo izquierdo, después el padre y después el hijo derecho.
En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Balance y perspectivas para Ubuntu
Noticias
wolfbcn 2 2,045 Último mensaje 11 Mayo 2011, 02:24 am
por beholdthe
hoja balance contabilidad vb6
Programación Visual Basic
asdexiva 2 2,437 Último mensaje 19 Octubre 2014, 00:54 am
por asdexiva
Eliminación de nodos en un árbol binario ordenado.
Programación C/C++
NextByte 0 1,996 Último mensaje 5 Abril 2019, 18:52 pm
por NextByte
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines