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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ayuda con un arbol binario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con un arbol binario  (Leído 2,330 veces)
Pipe99

Desconectado Desconectado

Mensajes: 1


Ver Perfil
ayuda con un arbol binario
« en: 25 Abril 2018, 03:07 am »

Buenas noches, estoy haciendo un programa en java que apartir de un String que tiene una operacion matematica por ejemplo "5+7*3-56/5+45". esto tiene que quedar en un arbol binario y luego resolverse. Yo tenia planeado contar cuantos signos hay y dividirlo en 2 para que el gigno de la mitad sea la raiz y con subString poner la parte derecha de signo en el hijo derecho y la izquierda en el hijo izquierdo y hacer recursividad hasta completar el arbol. pero el problema es que nose como obtener la  posicion del signo de la mitad, por el momento solo se cuantos signos hay y pensaba hacer un arreglo que me guardara los numeros haciendo un split para que omita los signos
 
        String x="785+6-7*4/4+9+445";
       String separadores = "[\\+\\-\\*\\/]";
       String z[] = x.split(separadores);
       
       for(int i=0;i<z.length();i++){
          System.out.println(z);
       }

con esto logro guardar en un espacio los numeros de varios digitos pero no se como meter los signos en ese  arreglo. espero me haya echo entender y de antemano gracias por su ayuda.
Código
  1.  


En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: ayuda con un arbol binario
« Respuesta #1 en: 26 Abril 2018, 00:43 am »

Ostia macho, tu descripción incomoda, bueno a mi algo,

Mmmm,


Te refieres al signo del medio cual ?

Código
  1. String x = "785+6-7*4/4+9+445";


con esto logro guardar en un espacio los numeros de varios digitos pero no se como meter los signos en ese  arreglo. espero me haya echo entender y de antemano gracias por su ayuda.
Código
  1.  
con el método .insert() de la clase StringBuilder puedes meter esos signos que deseas en cualquier parte de tu String


« Última modificación: 26 Abril 2018, 00:50 am por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: ayuda con un arbol binario
« Respuesta #2 en: 27 Abril 2018, 02:31 am »

0 - El árbol binario que pides, al caso dado, se llama arbol sintáctico.

1 - La función split, no vale, porque corta por los caracteres pedidos, dejando fuera esos caracteres qe son los operadores.
2 - Además, el operador de asignación '=', lo quedas fuera. Lo mismo que a x. 'x' es una variable, que debe ser tratado exactamente igual que si fuera un número.

3 - Toda la operatoria debe ser un bucle, que recorra buscando bytes o caracteres, reconozca numeros/variables/identificadores (como en el siguiente ejemplo) por un lado y operadores por otro. Los paréntesis también son operadores, en este caso de prioridad (se resuelve lo que está dentro  antes de resolver lo de más afuera).
x = (j * k) + 5 - ((n * 7) + cantidad)

4- Debes considerar la prioridad de los operadores, a falta de paréntesis, se deben seguir las reglas de precedencia de operadores,  y la estructura adecuada para mediar con el bucle y el árbol es una pila.

5 - Con un árbol sintáctico, los nodos terminales siempre contienen el operando (número, variable...) y los nodos internos contienen el operador, quedando el operador en medio de los operandos se conoce como notación infija

6 - Tal vez te interese seguir otro modelo. Revisa la notación polaca inversa, donde los 2 operandos quedan juntos antes del operador.

nota: te he marcado en negrita, todo aquello que puedes buscar en google, para profundizar...
« Última modificación: 27 Abril 2018, 02:37 am por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda Impresion de Arbol Binario
Programación C/C++
negux 2 4,198 Último mensaje 25 Noviembre 2010, 09:28 am
por Akai
Ayuda, no puedo borrar nodos de un Arbol Binario de Busqueda (Solucionado) [C++]
Programación C/C++
DarkSorcerer 7 12,645 Último mensaje 8 Marzo 2014, 02:47 am
por DarkSorcerer
Urgenteeeeee!!! Ayuda con arbol binario de busqueda
Programación C/C++
mathias_vg 2 2,020 Último mensaje 20 Noviembre 2015, 18:54 pm
por 0xFer
MOVIDO: ayuda con un arbol binario
Foro Libre
Eleкtro 0 1,079 Último mensaje 25 Abril 2018, 08:03 am
por Eleкtro
Ayuda con un arbol binario
Programación C/C++
freshhprince 1 2,640 Último mensaje 20 Noviembre 2021, 03:34 am
por .xAk.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines