Foros del Web » Programación para mayores de 30 ;) » .NET »

Compilación Arboles binarios

Estas en el tema de Compilación Arboles binarios en el foro de .NET en Foros del Web. Hola preciados amigos, soy nuevo en el foro al igual que en programación con C#, solicito de su apoyo para dar solución a lo siguiente, ...
  #1 (permalink)  
Antiguo 19/02/2015, 01:17
 
Fecha de Ingreso: febrero-2015
Mensajes: 3
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta Compilación Arboles binarios

Hola preciados amigos, soy nuevo en el foro al igual que en programación con C#, solicito de su apoyo para dar solución a lo siguiente, la verdad ya no doy como solucionarlo lo que se pide es:

Solicitar al usuario la captura de valores numéricos de manera repetitiva hasta que el usuario ya no desee continuar con esta operación, así mismo devolver dichos valores capturados en recorrido preorden, entreorden y postorden.

Les muestro el avance de mi código, al depurar el código solo permite la inserción de cinco datos, espero tener el apoyo de alguien que guste disipar las dudas para resolver las modificaciones a dicho código, de antemano muchas gracias por su tiempo y les mando saludos, quedo al pendiente de sus comentarios.

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ArbolBinarioOrdenado1
{
    public class ArbolBinarioOrdenado
    {
        class Nodo
        {
            public int info;
            public Nodo izq, der;
        }
        Nodo raiz;

        public ArbolBinarioOrdenado()
        {
            raiz = null;
        }

        public void Insertar(int info)
        {
            Nodo nuevo;
            nuevo = new Nodo();
            nuevo.info = info;
            nuevo.izq = null;
            nuevo.der = null;
            if (raiz == null)
                raiz = nuevo;
            else
            {
                Nodo anterior = null, reco;
                reco = raiz;
                while (reco != null)
                {
                    anterior = reco;
                    if (info < reco.info)
                        reco = reco.izq;
                    else
                        reco = reco.der;
                }
                if (info < anterior.info)
                    anterior.izq = nuevo;
                else
                    anterior.der = nuevo;
            }
        }


        private void ImprimirPre(Nodo reco)
        {
            if (reco != null)
            {
                Console.Write(reco.info + " ");
                ImprimirPre(reco.izq);
                ImprimirPre(reco.der);
            }
        }

        public void ImprimirPre()
        {
            ImprimirPre(raiz);
            Console.WriteLine();
        }

        private void ImprimirEntre(Nodo reco)
        {
            if (reco != null)
            {
                ImprimirEntre(reco.izq);
                Console.Write(reco.info + " ");
                ImprimirEntre(reco.der);
            }
        }

        public void ImprimirEntre()
        {
            ImprimirEntre(raiz);
            Console.WriteLine();
        }


        private void ImprimirPost(Nodo reco)
        {
            if (reco != null)
            {
                ImprimirPost(reco.izq);
                ImprimirPost(reco.der);
                Console.Write(reco.info + " ");
            }
        }


        public void ImprimirPost()
        {
            ImprimirPost(raiz);
            Console.WriteLine();
        }

        static void Main(string[] args)
        {
            ArbolBinarioOrdenado abo = new ArbolBinarioOrdenado();
            abo.Insertar(100);
            abo.Insertar(50);
            abo.Insertar(25);
            abo.Insertar(75);
            abo.Insertar(150);
            Console.WriteLine("Impresion preorden: ");
            abo.ImprimirPre();
            Console.WriteLine("Impresion entreorden: ");
            abo.ImprimirEntre();
            Console.WriteLine("Impresion postorden: ");
            abo.ImprimirPost();
            Console.ReadKey();
        }
    }
}

Etiquetas: arboles, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:09.