Example #1
0
        public void InsertarDato(int dat)
        {
            CNodo NuevoNodo;                                    //Nuevo nodo
            CNodo antes, luego;                                 //señal de antes y despues

            NuevoNodo      = new CNodo();                       //creo un nuevo nodo
            NuevoNodo.Dato = dat;                               //guardo el dato, en ese nuevo nodo
            int ban = 0;

            if (cabeza == null)
            {                                                   //preguntar si cabeza esta vacia
                NuevoNodo.siguiente = null;                     //indico que hay mas datos y se guarda hay
                cabeza = NuevoNodo;                             //dato se convierte en cabeza
            }
            else
            {
                if (dat < cabeza.Dato)
                {                                           //si dato es menor ah cabeza
                    NuevoNodo.siguiente = cabeza;           //ingresar dato antes de dato mayor
                    cabeza = NuevoNodo;                     //nuevo dato se convierte en cabeza
                }
                else
                {
                    antes = cabeza;                  //empieza en cabeza
                    luego = cabeza;                  //empieza en cabeza
                    while (ban == 0)
                    {                                //bandera apagada
                        if (dat >= luego.Dato)
                        {                            //dato mayor a luego
                            antes = luego;           //antes avanza y ocupa el lugar de siguiente
                            luego = luego.siguiente; //luego avanza a dato siguiente
                        }
                        if (luego == null)
                        {
                            ban = 1;
                        }
                        else
                        {
                            if (dat < luego.Dato)
                            {
                                ban = 1;
                            }
                        }
                    }
                    antes.siguiente     = NuevoNodo;      //antes se convierte en nuevo nodo
                    NuevoNodo.siguiente = luego;          //nuevo nodo siguiente se convierte en luego
                }                                         //FINAL DEL CODIGO//
            }
        }
Example #2
0
        public void EliminarDato(int dat)
        {
            CNodo antes, luego;
            int   ban = 0;

            if (Vacia())
            {
                Console.WriteLine("Lista vacía ");
                Console.ReadKey();
            }
            else
            {
                if (dat < cabeza.Dato)
                {
                    Console.WriteLine("dato no existe en la lista ");
                    Console.ReadKey();
                }
                else
                {
                    if (dat == cabeza.Dato)
                    {
                        cabeza = cabeza.siguiente;
                    }
                    else
                    {
                        antes = cabeza;
                        luego = cabeza;
                        while (ban == 0)
                        {
                            if (dat > luego.Dato)
                            {
                                antes = luego;
                                luego = luego.siguiente;
                            }
                            else
                            {
                                ban = 1;
                            }
                            if (luego == null)
                            {
                                ban = 1;
                            }
                            else
                            {
                                if (luego.Dato == dat)
                                {
                                    ban = 1;
                                }
                            }
                        }
                        if (luego == null)
                        {
                            Console.WriteLine("dato no existe en la Lista ");
                            Console.ReadKey();
                        }
                        else
                        {
                            if (dat == luego.Dato)
                            {
                                antes.siguiente = luego.siguiente;
                            }
                            else
                            {
                                Console.WriteLine("dato no existe en la Lista ");
                            }
                            Console.ReadKey();
                        }
                    }
                }
            }
        }
Example #3
0
 public CLista()
 {
     cabeza = null;                                  //lista vacia
 }
Example #4
0
 public CNodo()
 {
     siguiente = null;
 }