Exemplo n.º 1
0
        public void insertarDerecha(int d)
        {
            NodoDoble nuevo;

            if (puntero == null)
            {
                nuevo   = new NodoDoble(d);
                puntero = nuevo;
                izq     = nuevo;
                der     = nuevo;
            }
            else
            {
                if (puntero.Derecha == null)
                {
                    nuevo           = new NodoDoble(d);
                    nuevo.Izquierda = nuevo;
                    puntero.Derecha = nuevo;
                    der             = nuevo;
                }
                else
                {
                    nuevo                     = new NodoDoble(d);
                    nuevo.Izquierda           = puntero;
                    nuevo.Derecha             = puntero.Derecha;
                    puntero.Derecha.Izquierda = nuevo;
                    puntero.Derecha           = nuevo;
                }
            }
        }
 public void eliminar()
 {
     if (puntero != null)
     {
         if (puntero.Derecha == puntero)
         {
             puntero = null;
         }
         else if (puntero.Izquierda == puntero.Derecha)
         {
             puntero           = puntero.Derecha;
             puntero.Izquierda = puntero;
             puntero.Derecha   = puntero;
         }
         else
         {
             puntero = puntero.Derecha;
             puntero.Izquierda.Izquierda.Derecha = puntero;
             puntero.Izquierda = puntero.Izquierda.Izquierda;
         }
         dim--;
     }
     else
     {
         MessageBox.Show("no hay nodos en la lista");
     }
 }
Exemplo n.º 3
0
        public void dibujar(Control p)
        {
            Graphic   g   = new Graphic(p, 100, 0);
            NodoDoble aux = izq;

            while (aux != null)
            {
                if (aux == puntero)
                {
                    g.DibujoNodoDoble(Pens.Orange, aux.Izquierda == null, aux.Derecha == null, aux.dato, 80, 50, 30);
                }
                else if (aux == izq)
                {
                    g.DibujoNodoDoble(Pens.Green, aux.Izquierda == null, aux.Derecha == null, aux.dato, 80, 50, 30);
                }
                else if (aux == der)
                {
                    g.DibujoNodoDoble(Pens.Purple, aux.Izquierda == null, aux.Derecha == null, aux.dato, 80, 50, 30);
                }
                else
                {
                    g.DibujoNodoDoble(Pens.Black, aux.Izquierda == null, aux.Derecha == null, aux.dato, 80, 50, 30);
                }
                aux = aux.Derecha;
            }
        }
        public void insertarIzquierda(int d)
        {
            NodoDoble nuevo;

            if (puntero == null)
            {
                //lista circular todos apunta al puntero
                nuevo           = new NodoDoble(d);
                puntero         = nuevo;
                nuevo.Izquierda = nuevo;
                nuevo.Derecha   = nuevo;
            }
            else
            {
                if (puntero.Izquierda == puntero)
                {
                    nuevo             = new NodoDoble(d);
                    puntero.Derecha   = nuevo;
                    puntero.Izquierda = nuevo;
                    nuevo.Derecha     = puntero;
                    nuevo.Izquierda   = puntero;
                }
                else
                {
                    nuevo                     = new NodoDoble(d);
                    nuevo.Derecha             = puntero;
                    nuevo.Izquierda           = puntero.Izquierda;
                    puntero.Izquierda.Derecha = nuevo;
                    puntero.Izquierda         = nuevo;
                }
            }
            dim++;
        }
Exemplo n.º 5
0
 public void moverIzquierda()
 {
     if (puntero != null)
     {
         if (puntero.Izquierda != null)
         {
             puntero = puntero.Izquierda;
         }
     }
     else
     {
         MessageBox.Show("sin noos en la lista");
     }
 }
Exemplo n.º 6
0
 public void moverDerecha()
 {
     if (puntero != null)
     {
         if (puntero.Derecha != null)
         {
             puntero = puntero.Derecha;
         }
     }
     else
     {
         MessageBox.Show("Sin nodo en la lista");
     }
 }
Exemplo n.º 7
0
        public void mostrarderizq(DataGridView dg)
        {
            dg.Rows.Clear();
            dg.Columns.Clear();
            dg.ColumnHeadersVisible = false;
            dg.RowHeadersVisible    = false;
            dg.AutoSizeColumnsMode  = DataGridViewAutoSizeColumnsMode.AllCells;
            dg.AutoSizeRowsMode     = DataGridViewAutoSizeRowsMode.AllCells;
            NodoDoble corre = der;
            int       i     = 0;

            while (corre != null)
            {
                DataGridViewColumn dgc = new DataGridViewColumn(new DataGridViewTextBoxCell());
                dgc.Name       = "c1";
                dgc.HeaderText = "";
                dg.Columns.Add(dgc);
                dg.Rows[0].Cells[i].Value = corre.dato;
                corre = corre.Izquierda;
                i++;
            }
        }
Exemplo n.º 8
0
 public void eliminar()
 {
     if (puntero != null)
     {
         if (puntero.Izquierda == null && puntero.Derecha == null)
         {
             puntero = null;
             izq     = null;
             der     = null;
         }
         else if (puntero.Izquierda == null && puntero.Derecha != null)
         {
             izq     = puntero.Derecha;
             puntero = puntero.Derecha;
             puntero.Izquierda.Derecha = null;
             puntero.Izquierda         = null;
         }
         else if (puntero.Derecha == null && puntero.Izquierda != null)//01
         {
             der     = puntero.Izquierda;
             puntero = puntero.Izquierda;
             puntero.Derecha.Izquierda = null;
             puntero.Derecha           = null;
         }
         else if (puntero.Derecha != null && puntero.Izquierda != null)//010
         {
             puntero = puntero.Izquierda;
             puntero.Derecha.Derecha.Izquierda = puntero;
             puntero.Derecha = puntero.Derecha.Derecha;
         }
         else
         {
             MessageBox.Show("no hay nodos en la lista");
         }
     }
 }
        public void Dibujar(Control c)
        {
            Graphic   g   = new Graphic(c, 0, 0);
            NodoDoble aux = puntero;

            if (dim >= 1)
            {
                int bloque = 360 / dim;


                for (int i = 0; i < dim; i++)
                {
                    if (aux == puntero)
                    {
                        g.DibujoNodoCircular(Pens.Orange, 220, bloque, aux.dato);
                    }
                    else
                    {
                        g.DibujoNodoCircular(Pens.Purple, 220, bloque, aux.dato);
                    }
                    aux = aux.Izquierda;
                }
            }
        }
Exemplo n.º 10
0
 public NodoDoble(int dato)
 {
     izquierda = null;
     d         = dato;
     derecha   = null;
 }
Exemplo n.º 11
0
 public ListaDoble()
 {
     puntero = null;
     izq     = null;
     der     = null;
 }
 public void moverDer()
 {
     puntero = puntero.Derecha;
 }
 public void moverIzq()
 {
     puntero = puntero.Izquierda;
 }
 public LiostaDobleCircular()
 {
     puntero = null;
     dim     = 0;
 }