4.5 KiB
4.5 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d825a367417b2b2512c87 | Create a Doubly Linked List | 1 | Crear una lista doblemente vinculada |
Description
Instructions
Node
y comenzamos nuestra DoublyLinkedList
. Agreguemos dos métodos a nuestra lista doblemente enlazada llamada add
y remove
. El add
método debe añadir el elemento dado de la lista, mientras que el remove
método debe eliminar todas las ocurrencias de un elemento dado en la lista. Tenga cuidado al manejar cualquier posible caso de borde al escribir estos métodos, como eliminaciones del primer o último elemento. Además, eliminar cualquier elemento de una lista vacía debe devolver null
. Tests
tests:
- text: La estructura de datos DoublyLinkedList existe.
testString: 'assert((function() { var test = false; if (typeof DoublyLinkedList !== "undefined") { test = new DoublyLinkedList() }; return (typeof test == "object")})(), "The DoublyLinkedList data structure exists.");'
- text: DoublyLinkedList tiene un método llamado agregar.
testString: 'assert((function() { var test = false; if (typeof DoublyLinkedList !== "undefined") { test = new DoublyLinkedList() }; if (test.add == undefined) { return false; }; return (typeof test.add == "function")})(), "The DoublyLinkedList has a method called add.");'
- text: DoublyLinkedList tiene un método llamado eliminar.
testString: 'assert((function() { var test = false; if (typeof DoublyLinkedList !== "undefined") { test = new DoublyLinkedList() }; if (test.remove == undefined) { return false; }; return (typeof test.remove == "function")})(), "The DoublyLinkedList has a method called remove.");'
- text: 'Al eliminar un elemento de una lista vacía, se devuelve un valor nulo.'
testString: 'assert((function() { var test = false; if (typeof DoublyLinkedList !== "undefined") { test = new DoublyLinkedList() }; return (test.remove(100) == null); })(), "Removing an item from an empty list returns null.");'
- text: El método add agrega elementos a la lista.
testString: 'assert((function() { var test = false; if (typeof DoublyLinkedList !== "undefined") { test = new DoublyLinkedList() }; test.add(5); test.add(6); test.add(723); return (test.print().join("") == "56723"); })(), "The add method adds items to the list.");'
- text: Cada nodo realiza un seguimiento del nodo anterior.
testString: 'assert((function() { var test = false; if (typeof DoublyLinkedList !== "undefined") { test = new DoublyLinkedList() }; test.add(50); test.add(68); test.add(73); return (test.printReverse().join("") == "736850"); })(), "Each node keeps track of the previous node.");'
- text: El primer elemento puede ser eliminado de la lista.
testString: 'assert((function() { var test = false; if (typeof DoublyLinkedList !== "undefined") { test = new DoublyLinkedList() }; test.add(25); test.add(35); test.add(60); test.remove(25); return ( test.print().join("") == "3560" ) })(), "The first item can be removed from the list.");'
- text: El último elemento puede ser eliminado de la lista.
testString: 'assert((function() { var test = false; if (typeof DoublyLinkedList !== "undefined") { test = new DoublyLinkedList() }; test.add(25); test.add(35); test.add(60); test.remove(60); return ( test.print().join("") == "2535" ) })(), "The last item can be removed from the list.");'
Challenge Seed
var Node = function(data, prev) {
this.data = data;
this.prev = prev;
this.next = null;
};
var DoublyLinkedList = function() {
this.head = null;
this.tail = null;
// change code below this line
// change code above this line
};
After Test
console.info('after the test');
Solution
// solution required