0% encontró este documento útil (0 votos)
77 vistas4 páginas

Algoritmos en C#: Palíndromos y Árboles

El primer documento describe un programa que reconoce si una palabra es un palíndromo mediante el uso de una pila para invertir el orden de las letras de la palabra y compararla con la palabra original. El segundo documento calcula los números de Fibonacci recursivamente mediante una función que toma como parámetros el contador, el número máximo, y los dos números anteriores de la secuencia. El tercer documento describe una clase Lista_SE que contiene un método para calcular la suma de los elementos de la lista. El último documento describe una clase NodoArbol y una cl

Cargado por

Yosbel Rodriguez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
77 vistas4 páginas

Algoritmos en C#: Palíndromos y Árboles

El primer documento describe un programa que reconoce si una palabra es un palíndromo mediante el uso de una pila para invertir el orden de las letras de la palabra y compararla con la palabra original. El segundo documento calcula los números de Fibonacci recursivamente mediante una función que toma como parámetros el contador, el número máximo, y los dos números anteriores de la secuencia. El tercer documento describe una clase Lista_SE que contiene un método para calcular la suma de los elementos de la lista. El último documento describe una clase NodoArbol y una cl

Cargado por

Yosbel Rodriguez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

Palindromo(reconocer)

Console.WriteLine("Escriba la palabra");
String palabra = Console.ReadLine();
string reverse = "";

Stack pila = new Stack();


Char[] aux = palabra.ToArray();
for (int i = 0; i < aux.Length; i++)
{
pila.Push(aux[i]);
}

while (pila.Count > 0)


reverse += pila.Pop();

if (reverse.Equals(palabra))
Console.WriteLine("Es palindromo");
else
Console.WriteLine("No es ....");

Console.ReadKey();

Fibonachi(0,1,1,2,3,5,8,13,21,34,55,89,144,233,377)
static String var = "0";
public static String fibonacci(int contador, int n, int p1, int
p2)
{
if (contador != n) {
var = var + "," + p2;
var=fibonacci(contador + 1, n, p2, p1 + p2);
}
return var;
}
static void Main(string[] args)
{
Console.WriteLine("Ingrese un numero entero");
int n = Convert.ToInt32(Console.ReadLine());
if (n > 0) {
String a=fibonacci(0, n - 1, 0, 1);
Console.WriteLine(a);
}
Console.ReadLine();
}
Lista SE Sumatoria
Lista_SE<int> lse= new Lista_SE<int>();
public int Sumatoria() {
int result = 0;
int cont = 0;
while (cont < lse.Cantidad()) {
result += lse.Obtener(cont);
cont++;
}
return result;
}

Arboles
Preorden: (raíz, izquierdo, derecho).                
Inorden: (izquierdo, raíz, derecho).                              
Postorden: (izquierdo, derecho, raíz)

class NodoArbol {

    //miembros de acceso
    NodoArbol nodoizquierdo;
    String datos;
    NodoArbol nododerecho;

    //iniciar dato y hacer de este nodo un nodo hoja


    public NodoArbol(String datosNodo)
  {
        datos = datosNodo;
        nodoizquierdo = nododerecho = null; //el nodo no tiene hijos
  }

    //buscar punto de insercion  e insertar nodo nuevo


    public synchronized void insertar(String valorInsertar)
  {
        //insertar en subarbol izquierdo
        if (valorInsertar.length() <= datos.length()){

            //inserta nuevo nodoarbol


            if (nodoizquierdo == null)
                nodoizquierdo = new NodoArbol(valorInsertar);
            else //continua recorriendo subarbol izquierdo
                nodoizquierdo.insertar(valorInsertar);
    }

        //insertar nodo derecho


        else if(valorInsertar.length() > datos.length()){

            //insertar nuevo nodoarbol


            if (nododerecho == null)
                nododerecho = new NodoArbol(valorInsertar);
            else //continua recorriendo subarbol derecho
                nododerecho.insertar(valorInsertar);
    }
    } //fin del metodo insertar

} //fin clase nodoarbol

--- Fin del código ---

Clase Arbol

--- Código: ---//---------- CLASE ARBOL------------------


class Arbol{
    private NodoArbol raiz;

    //contruir un arbol vacio


    public Arbol()
  {
        raiz = null;
  }

    //insertar un nuevo nodo en el arbol de busqueda binaria


    public synchronized void insertarNodo(String valorInsertar)
  {
        if(raiz == null)
            raiz = new NodoArbol(valorInsertar); //crea nodo raiz

        else
            raiz.insertar(valorInsertar); // llama al metodo insertar
  }

public synchronized void recorridoPreorden()


  {
        ayudantePreorden(raiz);
  }
    //metodo recursivo para recorrido en preorden

    private void ayudantePreorden(NodoArbol nodo)


  {
        if (nodo == null)
            return;

        System.out.print(nodo.datos + " "); // mostrar datos del nodo


        ayudantePreorden(nodo.nodoizquierdo); //recorre subarbol izquierdo
        ayudantePreorden(nodo.nododerecho); //recorre subarbol derecho
  }
    //--------------EMPEZAR RECORRIDO INORDEN-----------------------------------
    public synchronized void recorridoInorden()
  {
        ayudanteInorden(raiz);
  }

    // metodo recursivo para recorrido inorden


    private void ayudanteInorden(NodoArbol nodo)
  {
        if (nodo == null)
            return;

        ayudanteInorden(nodo.nodoizquierdo);
        System.out.print(nodo.datos + " ");
        ayudanteInorden(nodo.nododerecho);
  }

    //-----------------------------EMPEZAR RECORRIDO POSORDEN---------------------------------


    public synchronized void recorridoPosorden()
  {
        ayudantePosorden(raiz);
  }

    //metodo recursivo para recorrido posorden


    private void ayudantePosorden(NodoArbol nodo)
  {
        if (nodo == null)
            return;
        ayudantePosorden(nodo.nodoizquierdo);
        ayudantePosorden(nodo.nododerecho);
        System.out.print(nodo.datos + " ");
  }

}//fin clase arbol

--- Fin del código ---

También podría gustarte