Pues si no lo fuiste puedes intentar para mejorar, es importante tener buenas bases matematicas por que abran cursos muy complejos donde tengas que ver matematicas discretas, logica, induccion matematica, etc. Entonces no te afanes tanto si no eres tan bueno en este momento, puedes llegar a mejorar mucho en la universidad con el ciclo basico de matematicas de precalculo, calculo diferencial e integral. Saludos
Yo estoy en 3er semestre y 1 mes antes de iniciar Ing de sistemas pensaba lo mismo y no tenía bases de Matemáticas, lo único que hice fue ponerme juicioso estudiando a conciencia en TH-cam y cuando entré a clases ya sabía muchas cosas. Te recomiendo que hagas eso pero siempre y cuando lo hagas a conciencia.
Tremendo metodo, estaba estresado pensando en como hacerlo. Gracias!!!!!!
GENIOOOOOOOO ! que buen truco, nunca me lo dijeron en la facultad y hacian que me rompa la cabeza con esto
y la idea es q te rompas la cabeza jajaja
Estupendísimo este tutorial, hecho en Bogotá - COLOMBIAAAAAAA 😃😃😃😍 👏👏👏👏👏👏👏
GENIIIOOOOOO!!! Gracias me salvaste la vida. NO hay muchos generadores de arboles binarios
Muchas gracias mi parce , mi profesor no me había enseñado esto en clase. Saludos desde Perú.
Hermano me acabas de salvar la vida. Que Dios te bendiga
Excelente tutorial, muchisimas gracias todo muy claro :)
Este video y explicación vale oro!!!! GRACIASSSSSSS!!!
increíble!!! muchas gracias broo sos un crack, sigue así te ganaste mis like y suscripción
Muchisimas gracias. Esta tecnica es increible, me ayudó mucho. Gracias!!!!
muy buen vídeo, súper útil
GENIOO me salvaste jajajaa gran truco!!!!
Genio IQ 100000 XD muchas gracias me suscribo.
Por dios, cómo nunca me enseñaro este método?? Gracias!!
GENIOOOOOO, ME SALVASTE!!!!!!!!!!! GRACIAS.
Hostia
Con razón es un dios de la Nacho
De parte de uno vuestros hijos muchas gracias.
GENIOOOOOOOOOOOOOOOOOOOOO, MUCHAS GRACIAS!
Sos un genio total
Muchas gracias por existir.
muy util el truco, no me lo habian enseñado y asi es mucho mas facil!!!
Graciasssssss, puedes tener a mi hermana cuando quieras.
Excelente vídeo, muchas gracias.
Excelente ayuda. Gracias
Glorificado seas maestro!
Esto es oro 👏
pq no vi este video antes :,/ gracias esto era algo que se me dificultaba mucho
AMOOOOOOOOOOOO GRACIASSSSS!!!!!
Asombrosoooo, me has salvado
1:32 solo alli ya me mataste man, a mi me pidieron armar el arbol a partir de una secuencia pos-order.
Broo me ayudaste en mi examen gracias ,este trucaso no me lo enseñaron en mi carrera.
Muy bien explicado, Gracias
Buen vídeo, excelente explicación...!!! :D
Bua muchas Gracias Amigo
Genio! Gracias!!
Tengo parcial de esto la próxima semana y no me lo pienso tirar!!!!
GRACIAS!!
Dios que loco truco super
Que si me ha gustado el truco... Buah...😂😂😂 Me has salvado la puta vida😂😂😂
Exelente explicacion
uuffff genial.
incredibol!!!
Thanks crack
Buenisimo !
muchas gracias crakk
Esto es poesia
gracias
Tengo q aprenderlo para dentro d 5 horas xd, estuvo facil espero q elmprofe acepte esta explicacion xd
en que casos no se podria armar el arbol?
(teniendo ya el in order y alguno de los otros dos)
Muy buenoo
Genial, muchas gracias....quisiera saber como es que se llama ese procedimiento que usaste, por favor gracias
Está bueno pero quién te da el pre, un y post orden?
Los buscas tú , te tienen que dar el árbol
ilustre....me has salvado el parcial jajajjajjajaja
Una pregunta, quiero estudiar ingeniería en sistemas ¿para estudiar la carrera debí de ser bueno en matemáticas?
Saludos!!!
Pues si no lo fuiste puedes intentar para mejorar, es importante tener buenas bases matematicas por que abran cursos muy complejos donde tengas que ver matematicas discretas, logica, induccion matematica, etc. Entonces no te afanes tanto si no eres tan bueno en este momento, puedes llegar a mejorar mucho en la universidad con el ciclo basico de matematicas de precalculo, calculo diferencial e integral. Saludos
Yo estoy en 3er semestre y 1 mes antes de iniciar Ing de sistemas pensaba lo mismo y no tenía bases de Matemáticas, lo único que hice fue ponerme juicioso estudiando a conciencia en TH-cam y cuando entré a clases ya sabía muchas cosas. Te recomiendo que hagas eso pero siempre y cuando lo hagas a conciencia.
que programa para tutorial utilizaste
una pregunta, ¿como obtuviste el recorrido en preorden y posorden sin tener el arbol?
o sea al árbol lo tenés en algún lugar..dibujado, implementado como grafo o algo así :)
Mayormente esos recorridos son parte del enunciado del ejercicio, y te piden hayar el arbol binario apartir de esos dos
Entonces ¿el punto "I" pertenece al "E" y no al "F" porque en el proceso siempre continuamos enlazando por la izquierda si es posible?
Como se hace el pre orden?
Implementación con los recorridos in_orden y post_orden.
private void imprimir_matriz(Integer[][] matriz) {
String cadena = "";
for (int i = 0; i < matriz.length; i++) {
cadena += "\t" + i;
}
cadena += "
";
for (Integer[] m : matriz) {
cadena += "\t-";
}
for (int f = 0; f < matriz.length; f++) {
cadena += "
" + f + " |";
for (int c = 0; c < matriz.length; c++) {
if (matriz[f][c] != null) {
if (matriz[f][c] != -1) {
cadena += "\t" + matriz[f][c];
} else {
cadena += "\t" + "|";
}
} else {
cadena += "\t" + " ";
}
}
}
System.out.println(cadena);
}
// Se podria reemplazar por una lista de columnas restringidas.
private void agregar_pared(Integer[][] matriz, int f, int c) {
for (int i = f; i < matriz.length; i++) {
matriz[i][c] = -1;
}
}
private boolean son_similares(LinkedList lista_in, Stack pila_post) {
if (lista_in.size() != pila_post.size()) {
return false;
}
LinkedList copia1 = (LinkedList) lista_in.clone();
Stack copia2 = (Stack) pila_post.clone();
Collections.sort(copia1);
Collections.sort(copia2);
for (int i = 0; i < copia1.size(); i++) {
if (!Objects.equals(copia1.get(i), copia2.get(i))) {
return false;
}
}
return true;
}
private Integer[][] crear_matriz(LinkedList lista_in, Stack pila_post) {
if (this.son_similares(lista_in, pila_post)) {
// Instancio variables.
int filas = lista_in.size(), columnas = filas;
Integer[][] matriz = new Integer[filas][columnas];
// Clono la pila_post.
Stack copia_post = (Stack) pila_post.clone();
// Agrego a cada fila de la matriz el elemento en la columna donde se interceptan.
for (int f = 0; f < filas; f++) {
matriz[f][lista_in.indexOf(copia_post.peek())] = copia_post.pop();
}
// Clono la pila_post.
copia_post = (Stack) pila_post.clone();
// Agrego la pared.
for (int f = 0; f < filas; f++) {
this.agregar_pared(matriz, f + 1, lista_in.indexOf(copia_post.pop()));
}
// Retorno la matriz llena junto con las paredes de -1.
this.imprimir_matriz(matriz);
return matriz;
}
return null;
}
private Integer hijo_izq(Integer[][] matriz, int f, int c, Integer dato) {
boolean pared = false;
for (int i = f; i < matriz.length; i++) {
for (int j = c; j > -1 && !pared; j--) {
if (matriz[i][j] != null) {
if (matriz[i][j] == -1) {
pared = true;
} else {
return matriz[i][j];
}
}
}
pared = false;
}
return null;
}
private Integer hijo_der(Integer[][] matriz, int f, int c, Integer dato) {
boolean pared = false;
for (int i = f; i < matriz.length; i++) {
for (int j = c; j < matriz.length && !pared; j++) {
if (matriz[i][j] != null) {
if (matriz[i][j] == -1) {
pared = true;
} else {
return matriz[i][j];
}
}
}
pared = false;
}
return null;
}
public void llenar_arbol(LinkedList lista_in, Stack pila_post) {
Integer[][] matriz = this.crear_matriz(lista_in, pila_post);
if (matriz != null) {
Integer dato = pila_post.pop();
this.agregar(null, null, dato);
for (int i = 0; i < matriz.length - 1; i++) {
Integer d_izq = this.hijo_izq(matriz, i + 1, lista_in.indexOf(dato) - 1, dato);
Integer d_der = this.hijo_der(matriz, i + 1, lista_in.indexOf(dato) + 1, dato);
if (d_izq != null) {
this.agregar("izq", dato, d_izq);
}
if (d_der != null) {
this.agregar("der", dato, d_der);
}
dato = pila_post.pop();
}
}
}
WTF! que seria esto? son re sencillos los algoritmos de recorrido de arboles, no se hace de forma iterativa, se usa recursion
Exacto después de implementar una clase Nodo , hacemos otra clase Árbol Binario dónde utilizamos recursividad.
public void preorden(Nodo aux){
if(aux!=null){
System.out.println(aux.getDato()+ " ");
preorden(aux.getIzquierdo());
preorden(aux.getDerecho());
}
}
public void preorden(){
preorden(raiz);
System.out.println(" ");
}
public void entreorden(Nodo aux){
if(aux!=null){
entreorden(aux.getIzquierdo());
System.out.println(aux.getDato()+ " ");
entreorden(aux.getDerecho());
}
}
public void entreorden(){
entreorden(raiz);
System.out.println(" ");
}
public void postorden(Nodo aux){
if(aux!=null){
postorden(aux.getIzquierdo());
postorden(aux.getDerecho());
System.out.println(aux.getDato()+ " ");
}
}
public void postorden(){
postorden(raiz);
System.out.println(" ");
}
cualquier cosa eh tanto código..
hola, me pueden ayudar como implemento este algoritmo? osea como reconstruyo un árbol mediante sus recorridos?
¿ Y con Post y Pre orden ?
No se puede, fijate que dice en el video que si o si necesitar el in-order para poder armar el arbol
Si se puede , hay otras técnicas
maestro
y si solo me dan el orden final?
Y cómo hago eso en un programa?
Para que usan eso?
Como se saca el in order
buen video,
pero necesitas hablar mas fuerte !!!
Que trucazo
god
Creo que el In-orden está mal
Como lo codifico XD
QUEEE ES ESE HACKKKKKK
lo veo y no lo creo