从自己的链表中删除元素

时间:2013-10-19 13:15:10

标签: c# doubly-linked-list

我正在建立我自己的双重链接列表,我有问题删除指定的元素,我当前的代码:

public void BorrarOrdenado(int index)
    {
        Nodo<T> nodo = primero;
        while (index >= 0 && index < numElementos)              
        {
            nodo = nodo.sgte;
        }
        if (nodo != null)
        {
            if (nodo == primero && nodo == ultimo)
            {
                primero = ultimo = null;
            }
            if (nodo == primero)
            {
                primero = primero.sgte;
                return;
            }
            if (nodo == ultimo)
            {
                ultimo = ultimo.sgte;
                return;
            }
            Nodo<T> anterior = nodo.ant;
            Nodo<T> siguiente = nodo.sgte;
            anterior.sgte = siguiente;
            siguiente.ant = anterior;
        }
    }

问题是当我想在另一个之前删除时添加新元素, 代码测试:

ListaGenerica<int> instanciaLista1 = new ListaGenerica<int>();

        instanciaLista1.AñadirOrdenado((int)3);
        instanciaLista1.AñadirOrdenado((int)2);
        instanciaLista1.AñadirOrdenado((int)7);
        instanciaLista1.AñadirOrdenado((int)5);
        Console.WriteLine(instanciaLista1.ToString());
        // ORDENADO : 2 => 3 => 5 => 7

        bool esta = instanciaLista1.Buscar((int)5);
        Console.WriteLine(esta);
        // TRUE

        instanciaLista1.setElemento(2, (int)6);
        // SI EXISTE
        Console.WriteLine(instanciaLista1.ToString());

        instanciaLista1.Borrar(1);
        Console.WriteLine(instanciaLista1.ToString());
        // 2 => 6 => 7

        instanciaLista1.AñadirOrdenado((int)8);
        Console.WriteLine(instanciaLista1.ToString());
        // 2 => 5 => 7 => 8 . THE PROBLEM IS HERE!!!

任何解决问题的建议??

0 个答案:

没有答案