Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Heroic

Páginas: [1]
1
Hola, mi problema es que creé un árbol binario en java, sin embargo los valores y su número de nodos ya están asignados. En lo que pido ayuda es que el código debe pedir el numero de nodos y sus valores, por ejemplo: Quiero un árbol con 5 nodos y sus valores son 1,65,3,9,0. O puede que quiera un árbol de 9 nodos y ya escribo sus valores espero haberme explicado bien, el código incluye los recorridos pero estos están bien.
Adjunto el código del árbol binario:

Código: [Seleccionar]
public class ArbolBinarioOrdenado {

    public ArbolBinarioOrdenado()
    {
        raiz = null;
    }
    int contadorNodos;
    //Creamos la clase Nodo
    class Nodo
    {
        int info;
        ArbolBinarioOrdenado.Nodo izq;
        ArbolBinarioOrdenado.Nodo der;
    }
   
    //Declaramos la propiedad raiz del arbol
    ArbolBinarioOrdenado.Nodo raiz;
   
   
    //Inicia metodo Insertar
     public void insertar(int info)
    {
        //Declaramos objeto nuevoArbol
        ArbolBinarioOrdenado.Nodo nuevoArbol = new ArbolBinarioOrdenado.Nodo();
       
        //Asigamos información
        nuevoArbol.info = info;
        nuevoArbol.izq = null;
        nuevoArbol.der = null;
       
        //Verificamos si es raiz
        if (raiz == null)
        {
            raiz = nuevoArbol;
        }
        else
        {
            //Inicializamos dos nuevos nodos
            ArbolBinarioOrdenado.Nodo anterior = null;
            ArbolBinarioOrdenado.Nodo actual = null;
           
            //Igualamos el nodo actual a la raiz
            actual = raiz;
            //Realizamos la logica de ir recorriendo el nodo actual y sus subarboles
            while (actual != null)
            {
                anterior = actual;
                if (info < actual.info)
                {
                    actual = actual.izq;
                }
                else
                {
                    actual = actual.der;
                }
            }
            //Si el nodo actual es nulo, agregamos información a sus lados
            if (info < anterior.info)
            {
                anterior.izq = nuevoArbol;       
            }
            else
            {
                anterior.der = nuevoArbol;
            }
        }
    }//Termina método Insertar
     
     private void imprimirPreOrden(ArbolBinarioOrdenado.Nodo recorriendo)
    {
        //Funcion recursiva Preorden
        //Recorrido Raiz Izq. Der.
        if (recorriendo != null)
        {
            System.out.print(recorriendo.info + " ");
            imprimirPreOrden(recorriendo.izq);
            imprimirPreOrden(recorriendo.der);
        }
    }
       
    private void imprimirInOrden(ArbolBinarioOrdenado.Nodo recorriendo)
    {
        //Funcion recursiva InOrden
        //Recorrido  Izq. Raiz Der.
        if (recorriendo != null)
        {
            imprimirInOrden(recorriendo.izq);
            System.out.print(recorriendo.info + " ");
            imprimirInOrden(recorriendo.der);
        }
    }
    private void imprimirPosOrden(ArbolBinarioOrdenado.Nodo recorriendo)
    {
        //Funcion recursiva PosOrden
        //Recorrido  Izq. Der. Raiz
        if (recorriendo != null)
        {
            imprimirPosOrden(recorriendo.izq);
            imprimirPosOrden(recorriendo.der);
            System.out.print(recorriendo.info + " ");
        }
    }
     
    public void llamarPreorden()
    {
        System.out.println("\nImpresion preorden: ");
        imprimirPreOrden(raiz);
        System.out.println();
    }
    public void llamarInorden()
    {
        System.out.println("\nImpresion inorden: ");
        imprimirInOrden(raiz);
        System.out.println();   
    }
   
    public void llamarPosorden()
    {
         System.out.println("\nImpresion postorden: ");
        imprimirPosOrden(raiz);
        System.out.println();   
    }
       
    public static void main(String[] args)
    {
        ArbolBinarioOrdenado abo  = new ArbolBinarioOrdenado();
       
       
        abo.insertar(56);
        abo.insertar(24);
        abo.insertar(76);
        abo.insertar(12);
        abo.insertar(27);
        abo.insertar(87);
        abo.insertar(45);
        abo.insertar(85);
        abo.insertar(90);
        abo.insertar(40);
        abo.insertar(54);
        abo.llamarPreorden();
        abo.llamarInorden();
        abo.llamarPosorden();       
    }   
}


     

2
Hola necesito ayuda en el siguiente programa.

Generar un programa que genere un vector de tamaño variable, el vector se llenara con valores aleatorios de entre 1 y 100, el programa pedirá un valor que se desee encontrar, en caso de encontrarlo imprimir en que posición del vector se encuentra y en caso contrario imprimir que el elemento no se encontró en el vector.

La parte de generar el vector ya la tengo pero la búsqueda me da error, agradecería mucho su ayuda, adjunto el código.

Código: [Seleccionar]
#include "iostream"
#include <time.h>
#include <cstdlib>
#include <stdbool.h>
using namespace std;

main(){
int tam, num;
bool band = false;
cout<<"Tamano del vector: ";
cin>>tam;
int vector[tam];
srand(time(NULL));

for (int i=0;i<tam;i++){
vector [i]=rand()%(100-1);
}
for (int j=0;j<tam;j++){
cout<<"\n  Vector ["<<j<<"] = "<<vector[j];
}
cout<<"\nIngrese el numero que quieres buscar: ";
cin>>num;
while(band==false){
if(vector[i]==num){ //Al compilarlo aquí me marca el error
band = true;
}
i++;
}
if (band==false){
cout<<"\nEl numero a buscar no existe en el Vectro";
}
else if(band==true){
cout<<"\nEl numero a sido encontadro en la posicion: "<<i-1;
}
}
   

3
Hola soy nuevo en esto de la programación y solicito ayuda para el siguiente programa:

Un programa en java que contenga dos personajes: caballero y mago.

Ambos personajes tienen:

  • Nivel de ataque
  • Nivel de defensa
  • Nivel de vida
  • Nombre

El caballero tiene una función especial invocar relámpago

El mago tiene una función especial de curar sus heridas y lanzar hechizos.

Cuando se crea una instancia de la clase de caballero o mago, tienes que pasar sus parámetros de ataque, defensa y nivel de vida para crearlo.

El juego comienza con un enemigo que tiene el doble de niveles y es un tipo de caballero.

El juego pregunta si quieren defenderse o atacar, si atacan invocan el poder con un número aleatorio y con este ataque bajan puntos de vida a su oponente.

A continuación, al azar su oponente pide atacar o defender, si ataca, el ataque hará un número aleatorio y se repetirá hasta que uno de los personajes alcance su nivel de vida a cero.

El mago en cada turno puede elevar su nivel de vida en 1.

Solo tengo la súper clase de ahí en adelante no se que tengo que hacer, agradecería mucho su ayuda, adjunto el código de la súper clase

Código: [Seleccionar]
class Nivel {
    protected String nombre;
    protected int ataque;
    protected int defensa;
    protected int vida;
    public Nivel (){
           nombre = "Desconocido";
           ataque = 0;
           defensa = 0;
           vida = 0;
    }
    public Nivel (String nombre, int ataque, int defensa, int vida){
       this.nombre = nombre;
        this.ataque = ataque;
        this.defensa = defensa;
        this.vida = vida;
    }
   
    public void setnombre (String nom){
        this.nombre = nom;
    }
    public void setataque (String atac){
        this.nombre = atac;
    }
    public void setdefensa (String defn){
        this.nombre = defn;
    }
    public void setvida (String pv){
        this.nombre = pv;
    }
   
    public String getnombre (){
        return this.nombre;
    }
    public int getataque (){
        return this.ataque;
    }
    public int getdefensa (){
        return this.defensa;
    }
    public int getvida (){
        return this.vida;
    }
   
}

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".