Listas doblemente enlazadas en Arduino

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.

Anuncios

Una respuesta

  1. Hola,
    Que tal?.
    Muchas gracias por la biblioteca me ha sido de mucha utilidad.
    Tengo una consulta, tengo dos listas que tienen datos relacionados, en una guardo valores int y en la otra long, la idea es que busco un valor en la primer lista y tomando su posición cambio el valor de esa posición en la segunda lista.
    El tema es que con search obtengo el valor del elemento pero no su posición en la lista, existe alguna opción que pueda pasarle para que en lugar del valor me devuelva la posición en la lista?.
    Gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: