La clase LinkedList implementa una versión sencilla de una Single LinkedList, una colección de elementos formada por una serie de nodos que permite añadir y eliminar elementos de forma muy eficiente.

La clase emplea Templates para poder contener cualquier tipo de objeto o tipos básicos.

Cada nodo contiene un elemento y una referencia al siguiente nodo. De esta forma, es posible añadir o eliminar elementos creando o eliminando nodos, y gestionando las referencias entre ellos.

La clase dispone de funciones para obtener, añadir, insertar, reemplazar y eliminar elementos de la LinkedList. Obtener un elemento es un proceso relativamente lento respecto a un array simple, porque es necesario recorrer todos los nodos hasta alcanzar el nodo deseado.

Para mejorar la eficiencia la clase mantiene una referencia al último elemento accedido. Esto evita tener que recorrer la colección desde el principio, lo cual es especialmente útil al acceder repetidas veces al mismo índice.

Adicionalmente, la clase mantiene una referencia al nodo cabeza (head) y cola (tail) lo que permite implementar de forma eficiente estructuras de tipo LIFO (Pila) y FIFO (Cola).

También se disponen de métodos para buscar elementos dentro de la LinkedList, invertir los elementos, y para copiar los elementos desde y hacia un array externo.

Para más información consultar la entrada
Implementar una Linked List en Arduino.

Manual de uso

Constructor

La clase LinkedList se instancia a través de su constructor.

Métodos generales

Acceder elementos

Insertar elementos

Reemplazar elementos

Eliminar elementos

Conversión a arrays

Instalación

  • Descargar la última versión de este enlace linkedListLib.zip
  • Descomprimir el archivo
  • Copiar en tu carpeta de librerías (normalmente Mis Documentos\Arduino\libraries)
  • Relanzar el IDE de Arduino

Ejemplos

La librería LinkedList incluye los siguientes ejemplos para ilustrar su uso.

  • LinkedList: Ejemplo general de uso de la clase LinkedList

Historial de versiones

  • 1.0 Primera versión



Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección
tutoriales de Arduino