C# LinkedList Ordenada
Viernes, 20 de Noviembre de 2009Las LinkedList ubicadas en la libreria System.Collections.Generic son listas doblemente enlasadas, no incorporan la opcion para tener los elementos ordenados. Necesitaba una LinkedList ordenada de elementos de tipo int asi que cree ua nueva clase heredando todas las caracteristicas de LinkedList, solo añadi la funcion ShortAdd(int v). para añadir elementos enteros de manera ordenada. La nueva Clase que creee para solucionar este inconveniente es la ShortedLinkedList
Aqui les dejo el codigo fuente
class SortedLinkedList<T> : LinkedList<T>
{
public void ShortAdd(T v)
{
LinkedListNode<T> nuevo = new LinkedListNode<T>(v);
LinkedListNode<T> aux = this.First;
if (aux == null) this.AddFirst(nuevo);
while (aux != null)
{
int n = Convert.ToInt32(nuevo.Value);
int a = Convert.ToInt32(aux.Value);
if (n < a)
{
this.AddBefore(aux, nuevo);
break;
}
aux = aux.Next;
if (aux == null) this.AddLast(nuevo);
}
}
}
Asi solo utilicemos las funcion ShortAdd() para añadir elementos, y recuerden solo funciona cuando declaramos la SortLinkedList de tipo int.
Ejemplo
SortedLinkedList<int> lstdbleord = new SortedLinkedList<int>();
Aunque seria interesante crear una que acepte caracteres o mejor aun cadenas asi ordenariamos listas de nombres con facilidad.



