La clase LinkedList < T > está presente en el espacio de nombres System.Collections.Generic . Este tipo genérico permite la rápida inserción y extracción de elementos. Implementa una lista enlazada clásica. Cada objeto se asigna por separado. En LinkedList, ciertas operaciones no requieren que se copie toda la colección. Pero en muchos casos comunes, LinkedList dificulta el rendimiento.
Características de la clase LinkedList:
- LinkedList< T > es una lista enlazada de propósito general. Admite enumeradores.
- La inserción y la eliminación son operaciones O(1) .
- Puede eliminar Nodes y volver a insertarlos, ya sea en la misma lista o en otra lista, lo que da como resultado que no se asignen objetos adicionales en el montón.
- Dado que la lista también mantiene un recuento interno, obtener la propiedad Count es una operación O(1).
- Cada Node en un objeto LinkedList< T > es del tipo LinkedListNode< T >.
- La clase LinkedList no admite el enstringmiento, la división, los ciclos u otras funciones que pueden dejar la lista en un estado incoherente.
- Si LinkedList está vacío, las propiedades First y Last contienen un valor nulo.
- LinkedList está doblemente vinculado, por lo tanto, cada Node apunta hacia adelante al siguiente Node y hacia atrás al Node anterior.
Constructores
Constructor | Descripción |
---|---|
Lista enlazada() | Inicializa una nueva instancia de la clase LinkedList que está vacía. |
Lista enlazada (IEnumerable) | Inicializa una nueva instancia de la clase LinkedList que contiene elementos copiados del IEnumerable especificado y tiene capacidad suficiente para acomodar la cantidad de elementos copiados. |
LinkedList(SerializationInfo, StreamingContext) | Inicializa una nueva instancia de la clase LinkedList que se puede serializar con SerializationInfo y StreamingContext especificados. |
Ejemplo:
// C# code to create a LinkedList using System; using System.Collections; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Creating a LinkedList of Strings LinkedList<String> myList = new LinkedList<String>(); // Adding nodes in LinkedList myList.AddLast("Geeks"); myList.AddLast("for"); myList.AddLast("Data Structures"); myList.AddLast("Noida"); // To check if LinkedList is empty or not if (myList.Count > 0) Console.WriteLine("LinkedList is not empty"); else Console.WriteLine("LinkedList is empty"); } }
Producción:
LinkedList is not empty
Propiedades
Propiedad | Descripción |
---|---|
Contar | Obtiene el número de Nodes realmente contenidos en LinkedList. |
Primero | Obtiene el primer Node de LinkedList. |
Ultimo | Obtiene el último Node de LinkedList. |
Ejemplo:
// C# code to illustrate the // LinkedList<T> class properties using System; using System.Collections; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Creating a LinkedList of Strings LinkedList<String> myList = new LinkedList<String>(); // Adding nodes in LinkedList myList.AddLast("GeeksforGeeks"); myList.AddLast("GFG"); myList.AddLast("Data Structures"); myList.AddLast("Noida"); // ------- Count Property ------- // To get the first node of the LinkedList if (myList.Count > 0) Console.WriteLine(myList.First.Value); else Console.WriteLine("LinkedList is empty"); // ------- Last Property ------- // To get the last node of the LinkedList if (myList.Count > 0) Console.WriteLine(myList.Last.Value); else Console.WriteLine("LinkedList is empty"); } }
Producción:
GeeksforGeeks Noida
Métodos
Método | Descripción |
---|---|
AñadirDespués | Agrega un nuevo Node o valor después de un Node existente en LinkedList. |
AñadirAntes | Agrega un nuevo Node o valor antes de un Node existente en LinkedList. |
AñadirPrimero | Agrega un nuevo Node o valor al comienzo de LinkedList. |
AñadirÚltimo | Agrega un nuevo Node o valor al final de LinkedList. |
Claro() | Elimina todos los Nodes de LinkedList. |
Contiene (T) | Determina si un valor está en LinkedList. |
Copiar a (T[], Int32) | Copia toda la LinkedList en una array unidimensional compatible, comenzando en el índice especificado de la array de destino. |
Es igual a (Objeto) | Determina si el objeto especificado es igual al objeto actual. |
Encontrar t) | Encuentra el primer Node que contiene el valor especificado. |
BuscarÚltimo(T) | Encuentra el último Node que contiene el valor especificado. |
ObtenerEnumerador() | Devuelve un enumerador que itera a través de LinkedList. |
Obtener código hash() | Sirve como la función hash predeterminada. |
GetObjectData(SerializationInfo, StreamingContext) | Implementa la interfaz ISerializable y devuelve los datos necesarios para serializar la instancia de LinkedList. |
ObtenerTipo() | Obtiene el Tipo de la instancia actual. |
MemberwiseClone() | Crea una copia superficial del objeto actual. |
OnDeserialization(Objeto) | Implementa la interfaz ISerializable y genera el evento de deserialización cuando se completa la deserialización. |
Quitar (Node de lista enlazada) | Elimina el Node especificado de LinkedList. |
Quitar (T) | Elimina la primera aparición del valor especificado de LinkedList. |
QuitarPrimero() | Elimina el Node al comienzo de LinkedList. |
QuitarÚltimo() | Elimina el Node al final de LinkedList. |
Enstringr() | Devuelve una string que representa el objeto actual. |
Ejemplo:
// C# code to check if a // value is in LinkedList using System; using System.Collections; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Creating a LinkedList of Strings LinkedList<String> myList = new LinkedList<String>(); // Adding nodes in LinkedList myList.AddLast("A"); myList.AddLast("B"); myList.AddLast("C"); myList.AddLast("D"); myList.AddLast("E"); // To check if a value is in LinkedList Console.WriteLine(myList.Contains("B")); } }
Producción:
True
Ejemplo:
// C# code to remove the specified // node from the LinkedList using System; using System.Collections; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Creating a LinkedList of Integers LinkedList<int> myList = new LinkedList<int>(); // Adding nodes in LinkedList myList.AddLast(2); myList.AddLast(4); myList.AddLast(6); myList.AddLast(8); // To get the count of nodes in LinkedList // before removing all the nodes Console.WriteLine("Total nodes in myList are : " + myList.Count); // Displaying the nodes in LinkedList foreach(int i in myList) { Console.WriteLine(i); } // Removing the first node from the LinkedList myList.Remove(myList.First); // To get the count of nodes in LinkedList // after removing all the nodes Console.WriteLine("Total nodes in myList are : " + myList.Count); // Displaying the nodes in LinkedList foreach(int i in myList) { Console.WriteLine(i); } } }
Producción:
Total nodes in myList are : 4 2 4 6 8 Total nodes in myList are : 3 4 6 8
Referencia:
Publicación traducida automáticamente
Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA