Algunas veces nos encontramos con la necesidad de tener la información que leemos de una base de datos o que nos entrega cierto dispositivo en forma de lista. He visto algunas implementaciones de otros usuarios de Arduino y la verdad, a mi no me han llegado a convencer del todo, por lo que he desarrollado mi propia clase para usar listas doblemente enlazadas (listas que se pueden recorrer en uno u otro sentido).
Aquí dejo un resumen de las características:
NewList.h — Versión 1.0
Librería para usar listas doblemente enlazadas en Arduino (1.0.5 o superior).
Creada por: José Alfonso Suárez Moreno (joseasuarez@gmail.com).
Fecha: 21.ABR.2014
Uso:
NewList<tipo> lista;
<tipo> es el tipo de dato a usar en la lista. Desde un tipo primitivo como int, char, long… hasta un objetoo una estructura. Los símbolos <> son necesarios.
Métodos:
- ~NewList()–> Destructor.
- add() -> Añade un nuevo elemento al final de la lista.
- insert() -> Inserta un nuevo elemento delante del actual.
- goFirst() -> Se posiciona al principio de la lista.
- goLast() -> Se posiciona al final de la lista.
- goTo(int n) -> Se posiciona en la posición n. La primera posición es 0.Si el valor es mayor que el número de elementos-1 se posiciona en el último.
- search(tipo v) -> Busca el valor v en la lista. Debe ser del mismo tipo que el declarado al crear el objeto. Devuelve el valor. Si no lo encuentra se posiciona en el último elemento.
- goPrevious() -> Se posiciona en el elemento anterior al actual.
- goNext() -> Se posiciona en el elemento siguiente al actual.
- isFirst() -> Indica si está posicionado en el primer elemento. (true/false).
- isLast() -> Indica si está posicionado en el último elemento. (true/false).
- isEmpty() -> Indica si la lista está vacía. (true/false).
- getCurrent() -> Devuelve el elemento actual.
- get(int n) -> Devuelve el elemento n. La primera posición es 0. Si el valor es mayor que el número de elementos-1 se posiciona en el último.
- hasPrevious() -> Indica si hay un elemento dealante del actual. (true/false).
- hasNext() -> Indica si hay un elemento detrás del actual.
TO-DO:
- erase(int n) -> Eliminar el elemento n.
- eraseCurrent() -> Eliminar el elemento actual.
- eraseValue(tipo v) -> Eliminar el elemento que tenga el valor v (del mismo tipo que el especificado al crear la lista).
Enlace de descarga: listas doblemente enlazadas en Arduino.
Filed under: Arduino, Art. Programación | Tagged: Arduino, doblemente, doubly, enlazadas, linked, list, listas | 1 Comment »