lunes, 2 de diciembre de 2013

Ejemplo de Colas

using System;
using System.Linq;
using System.Collections.Generic;
namespace Lista__colas__quitar_brenda
{
class Program
    {
public static void Main(string[] args)
        {
            Queue<alumno> cola = new Queue<alumno>();
            List <alumno> lista = new List <alumno>();
string enlistado = "ALMAZAN ESTRADA SEBASTIAN OLAF,1,ALVAREZ CISNEROS IZYALYTH ERNESTINA,2,ALVAREZ QUINTERO DANIEL ISAI,3,ARENAS GUTIERREZ CAROLINA,4,CHAVEZ GUTIERREZ FERNANDO SAUL,5,GOMEZ MORALES ANDRES ANGEL,6,GONZALEZ SAUCEDO KARINA ISELA,7,HERNANDEZ GUTIERREZ CAROLINA,8,HERNANDEZ LEAL BRENDA ITZEL,9,HERNANDEZ VALDEZ MARGARITA,10,MIÑON MILLAN LUZ AIDA,11,ORDOÑEZ MUÑOZ GUADALUPE MONTSERRAT,12,PEREZ JIMENEZ BRAYAN ROBERTO,13,SANCHEZ BELLO GUSTAVO,14,SANTIAGO MARTINEZ GONZALO,15,VAZQUEZ REGALADO SAUL HIRAM,16,El ISRRA,17";
var recortes = enlistado.Split(',');
for (int i = 0; i < recortes.Length; i+=2)
            {
                    alumno propiedad_alumno = new alumno();
int res;
                    Math.DivRem(i,2,out res);
if (res==0)
                    {
                    propiedad_alumno.nombre = recortes[i];               
                    propiedad_alumno.nl = Convert.ToInt32(recortes[i+1]);
                    cola.Enqueue(propiedad_alumno);
                    }
            }
                lista = cola.ToList();
                 Console.WriteLine("~ ~~ ~~ ~~ LISTA ORIGINAL ~~ ~~ ~~ ~~");
                 Console.WriteLine("\t ");
foreach (alumno lismo in lista)
                {
                    Console.WriteLine(lismo.nl + ".- " + lismo.nombre);
                }
                   Console.WriteLine("\t ");
                lista.Remove(lista[8]);//elimina a brenda
//lista.Remove(lista[1]);//elimina a Yaly
               Console.WriteLine("~ ~~ ~~ ~~ LISTA MODIFICADA ~~ ~~ ~~ ~~");
               Console.WriteLine("\t ");
foreach (alumno lismo in lista)
                {
                    Console.WriteLine(lismo.nl + ".- " + lismo.nombre);
                }
            Console.ReadKey(true);
        }
public class alumno
        {
public string nombre { get; set; }
public int nl { get; set; }
        }
    }
}

image

domingo, 1 de diciembre de 2013

pilas y colas

using System;
using System.Linq;
using System.Collections.Generic;
namespace Suma
{
class Program
    {
public static void Main(string[] args)
        {
            Queue<alumno> cola =new Queue<alumno>();//cola es Queue
//Stack<alumno> pila = new Stack<alumno>();//declarar pila
            List<alumno> lista = new List<alumno>();//lista para borrar
string s = "ALMAZAN ESTRADA SEBASTIAN OLAF,1,ALVAREZ CISNEROS IZYALYTH ERNESTINA,2,ALVAREZ QUINTERO DANIEL ISAI,3,ARENAS GUTIERREZ CAROLINA,4,CHAVEZ GUTIERREZ FERNANDO SAUL,5,GOMEZ MORALES ANDRES ANGEL,6,GONZALEZ SAUCEDO KARINA ISELA,7,HERNANDEZ GUTIERREZ CAROLINA,8,HERNANDEZ LEAL BRENDA ITZEL,9,HERNANDEZ VALDEZ MARGARITA,10,MIÑON MILLAN LUZ AIDA,11,ORDOÑEZ MUÑOZ GUADALUPE MONTSERRAT,12,PEREZ JIMENEZ BRAYAN ROBERTO,13,SANCHEZ BELLO GUSTAVO,14,SANTIAGO MARTINEZ GONZALO,15,VAZQUEZ REGALADO SAUL HIRAM,16,El ISRRA,17";
var arre = s.Split (',');//quien recibe los recortes
for (int i = 0; i < arre.Length; i+=2) //repite derterminadas veces
                {
                    alumno x = new alumno();// crear nuevo alumno
//x.nombre = arre[]
int res;
                    Math.DivRem(i,2,out res);
if (res==0)
                    {
                        x.nombre = arre[i];//propiedad nombre de alumno
                        x.nl = Convert.ToInt32(arre[i+1]); //numer de lista convertido a entero por que era string
//pila.Push(x);
                        cola.Enqueue(x);//Enqueue encola los datos que les pases
                    }
                }
//pila.Pop();//elimina lo ultimo de la pila
//lista = pila.ToList();
                lista = cola.ToList(); //pasa lo que hay en la cola a una lista
//                for (int i = 0; i < lista.Count; i++)
//                {
//                    Console.WriteLine(lista[i].nombre+" " + lista[i].nl);
//                }
//               
//lista.Remove(lista[2]);
//               
                Console.WriteLine("        *****LISTA ORIGINAL******");
                Console.WriteLine("\t ");
foreach (alumno alu_f in lista)
                {
                    Console.WriteLine(alu_f.nl+ ".- " + alu_f.nombre);
                }
                Console.WriteLine("\t ");
                lista.Remove(lista[8]);
                Console.WriteLine("        *****LISTA CON ELIMINACION******");
                Console.WriteLine("\t ");
foreach (alumno alu_f in lista)
                {
                    Console.WriteLine(alu_f.nl+ ".- " + alu_f.nombre);
                }
        }
    }
public class alumno//crear una classe publica dinamica que se utilizara en la classe estatica de arriba
    {
public string nombre { get; set; }
public int nl { get; set; }
    }
}

Pila estructura de datos (Stack)

Stack (Pila) en C#

Haca les traigo un nuevo código, les daré una breve explicación de que es el "Stack" en ingles o "Pila" en español.
Una pila (stack en inglés) es una estructura de datos de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.
En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, top of stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.
Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.

  • Las pilas suelen emplearse en los siguientes contextos:
  • Evaluación de expresiones en notación postfija (notación polaca inversa).
  • Reconocedores sintácticos de lenguajes independientes del contexto
  • Implementación de recursividad.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;// necesario para poder declarar un "STACK"
namespace ConsoleApplication1
{
class Program
    {
static void Main(string[] args)
        {
            Stack pila = new Stack();//instancio un nuevo objeto stack(pila)
            pila.Push(1);//agrego un elemento a la pila
            pila.Push(4);
            pila.Push(1);
            pila.Push(6);
            pila.Push(3);
            pila.Push(5);
            pila.Push(9);
for (int i = 0; i < 3; i++)//itera 3 veces para ir retirando elementos de la pila
            {         
//pila.pop saca elementos de la pila
                Console.WriteLine("Elemento retirado de la pila: " + pila.Pop());//imprime los elementos que va retirando el .pop
                Console.WriteLine("el próximo elemento que queda en la pila es: " + pila.Peek());//muestra el elemento siguiente en la pila sin eliminarlo
                Console.WriteLine("");
            }     
            Console.ReadKey();
        }
    }
}