linked list
. Cada lista vinculada debe comenzar con unas pocas propiedades básicas: una head
(el primer elemento de su lista) y una length
(número de elementos en su lista). A veces, verás implementaciones de listas vinculadas que incorporan una tail
para el último elemento de la lista, pero por ahora solo nos quedaremos con estos dos. Cada vez que agregamos un elemento a la lista vinculada, nuestra propiedad de length
debe incrementarse en uno. Queremos tener una forma de agregar elementos a nuestra lista vinculada, por lo que el primer método que querremos crear es el método de add
. Si nuestra lista está vacía, agregar un elemento a nuestra lista vinculada es lo suficientemente simple: simplemente envolvemos ese elemento en una clase de Node
, y asignamos ese nodo al head
de nuestra lista vinculada. Pero, ¿y si nuestra lista ya tiene uno o más miembros? ¿Cómo agregamos un elemento a la lista? Recuerde que cada nodo en una lista vinculada tiene una propiedad next
. Para agregar un nodo a la lista, busque el último nodo en la lista y apunte la next
propiedad del último nodo a nuestro nuevo nodo. (Sugerencia: sabe que ha llegado al final de una lista vinculada cuando la next
propiedad de un nodo es null
). head
; después de eso, cada vez que agregue un nodo, cada nodo debe ser referenciado por la next
propiedad del nodo anterior. Nota La length
su lista debe aumentar en uno cada vez que se agregue un elemento a la lista vinculada. LinkedList
debe tener un método de add
.
testString: 'assert((function(){var test = new LinkedList(); return (typeof test.add === "function")}()), "Your LinkedList
class should have a add
method.");'
- text: Su clase LinkedList
debe asignar head
al primer nodo agregado.
testString: 'assert((function(){var test = new LinkedList(); test.add("cat"); return test.head().element === "cat"}()), "Your LinkedList
class should assign head
to the first node added.");'
- text: El node
anterior en su clase LinkedList
debe tener referencia al nodo más reciente creado.
testString: 'assert((function(){var test = new LinkedList(); test.add("cat"); test.add("dog"); return test.head().next.element === "dog"}()), "The previous node
in your LinkedList
class should have reference to the newest node created.");'
- text: El size
de su clase LinkedList
debe ser igual a la cantidad de nodos en la lista vinculada.
testString: 'assert((function(){var test = new LinkedList(); test.add("cat"); test.add("dog"); return test.size() === 2}()), "The size
of your LinkedList
class should equal the amount of nodes in the linked list.");'
```