From 148f9179c941d9586e36930af4d80c9f2f74bbbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Savi=C3=B1on?= <44041766+Mengeroshi@users.noreply.github.com> Date: Sun, 20 Dec 2020 13:16:35 -0600 Subject: [PATCH] Linked List Spanish Traslation (#409) * Linked List Spanish Traslation * Rename the CI workflow file. Co-authored-by: Oleksii Trekhleb --- .../linked-list/README.es-ES.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 src/data-structures/linked-list/README.es-ES.md diff --git a/src/data-structures/linked-list/README.es-ES.md b/src/data-structures/linked-list/README.es-ES.md new file mode 100644 index 00000000..978e234d --- /dev/null +++ b/src/data-structures/linked-list/README.es-ES.md @@ -0,0 +1,164 @@ +# Lista Enlazada (Linked List) + +_Lee esto en otros idiomas:_ +[_简体中文_](README.zh-CN.md), +[_Русский_](README.ru-RU.md), +[_日本語_](README.ja-JP.md), +[_Português_](README.pt-BR.md) +[_English_](README.md) + +En ciencias de la computaciòn una **lista enlazada** es una coleccion linear +de elemntos de datos, en los cuales el orden linear no es dado por +su posciòn fisica en memoria. En cambio, cada +elemento señala al siguiente. Es una estructura de datos +que consiste en un grupo de nodos los cuales juntos representan +una secuencia. Bajo la forma mas simple, cada nodo es +compuesto de datos y una referencia (en otras palabras, +un lazo) al siguiente nodo en la secuencia. Esta estructura +permite la insercion o remocion de elementos +desde cualquier posicion en la secuencia durante la iteracion. +Variantes mas complejas agregan lazos adicionales, permitiendo +una eficiente insercion o remocion desde referencias arbitrarias +del elemento. Una desventaja de las listas lazadas es que el tiempo de +acceso es linear (y dificil de canalizar) Un acceso +mas rapido, como un acceso aleatorio, no es factible. Los arreglos +tienen una mejor locazion comparados con las listas lazadas. + + +![Linked List](https://upload.wikimedia.org/wikipedia/commons/6/6d/Singly-linked-list.svg) + +## Pseudocodigo para operacones basicas + +### Insertar + +```text +Add(value) + Pre: value is the value to add to the list + Post: value has been placed at the tail of the list + n ← node(value) + if head = ø + head ← n + tail ← n + else + tail.next ← n + tail ← n + end if +end Add +``` + +```text +Prepend(value) + Pre: value is the value to add to the list + Post: value has been placed at the head of the list + n ← node(value) + n.next ← head + head ← n + if tail = ø + tail ← n + end +end Prepend +``` + +### Buscar + +```text +Contains(head, value) + Pre: head is the head node in the list + value is the value to search for + Post: the item is either in the linked list, true; otherwise false + n ← head + while n != ø and n.value != value + n ← n.next + end while + if n = ø + return false + end if + return true +end Contains +``` + +### Borrar + +```text +Remove(head, value) + Pre: head is the head node in the list + value is the value to remove from the list + Post: value is removed from the list, true, otherwise false + if head = ø + return false + end if + n ← head + if n.value = value + if head = tail + head ← ø + tail ← ø + else + head ← head.next + end if + return true + end if + while n.next != ø and n.next.value != value + n ← n.next + end while + if n.next != ø + if n.next = tail + tail ← n + end if + n.next ← n.next.next + return true + end if + return false +end Remove +``` + +### Atrevesar + +```text +Traverse(head) + Pre: head is the head node in the list + Post: the items in the list have been traversed + n ← head + while n != ø + yield n.value + n ← n.next + end while +end Traverse +``` + +### Atravesar en Reversa + +```text +ReverseTraversal(head, tail) + Pre: head and tail belong to the same list + Post: the items in the list have been traversed in reverse order + if tail != ø + curr ← tail + while curr != head + prev ← head + while prev.next != curr + prev ← prev.next + end while + yield curr.value + curr ← prev + end while + yield curr.value + end if +end ReverseTraversal +``` + +## Complexities + +### Time Complexity + +| Access | Search | Insertion | Deletion | +| :-------: | :-------: | :-------: | :-------: | +| O(n) | O(n) | O(1) | O(n) | + +### Space Complexity + +O(n) + +## References + +- [Wikipedia](https://en.wikipedia.org/wiki/Linked_list) +- [YouTube](https://www.youtube.com/watch?v=njTh_OwMljA&index=2&t=1s&list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8)