From fee85368ba015999e06e6483b4af87ab34eff0af Mon Sep 17 00:00:00 2001 From: aakgn Date: Tue, 7 Jun 2022 23:10:03 +0300 Subject: [PATCH] docs: add singly linked list (#763) * Singly Linked List Documentation * Update singly-linked-list.md --- docs/en/Lists/singly-linked-list.md | 89 +++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs/en/Lists/singly-linked-list.md diff --git a/docs/en/Lists/singly-linked-list.md b/docs/en/Lists/singly-linked-list.md new file mode 100644 index 00000000..f9f859b5 --- /dev/null +++ b/docs/en/Lists/singly-linked-list.md @@ -0,0 +1,89 @@ +# Singly Linked List + +A linked structure is a collection of nodes storing data and links to other nodes. In this way, nodes can be located anywhere in memory, +and passing from one node of the linked structure to another is accomplished by storing the addresses of other nodes in the linked structure. + +If a node contains a data member that is a pointer to another node, then many nodes can be strung together using only one variable to access +the entire sequence of nodes. Such a sequence of nodes is the most frequently used implementation of a linked list, which is a data structure +composed of nodes, each node holding some information and a pointer to another node in the list. If a node has a link only to its successor +in this sequence, the list is called a singly linked list. + +A node includes two data members: **info** and **next**. The info member is used to store information, and this member is important to the user. +The next member is used to link nodes to form a linked list. It is an auxiliary data member used to maintain the linked list. It is indispensable +for implementation of the linked list, but less important (if at all) from the user’s perspective. + + +## Steps + +- New node is created. +- The number(data) is assigned to the info member of this node. +- null is assigned to next member of this node. +- The new node is included in the list by making the next member of the first node a pointer to the new node. + + +## Example + +Now, let us create the three-nod linked list as an example. One way to create this three-node linked list is to first generate the node for number +8(our first data), then the node for 5(our second data), and finally the node for 2(our last data). + +*pointer is represents our successor. + +- In the first step, a new Node is created + + Pointer : pointer to first node. + + pointer->info : + + pointer->next : + +- in the second step, the info member of this node is set to 8, and, the node’s next member is set to null. + + pointer : pointer to first node. + + pointer->info : 8 + + pointer->next : null + +- in the third step, new node is created and the info member of this node is set to 5, and, the node’s next member is set to null. + + pointer : pointer to first node. + + pointer->info : 8 + + pointer->next : pointer to next node. + + Pointer->next->info : 5 + + Pointer->next->next : null + +- in the fourth step, new node is created and the info member of this node is set to 2, and, the node’s next member is set to null. + + pointer : pointer to first node. + + pointer->info : 8 + + pointer->next : pointer to next node. + + Pointer->next->info : 5 + + pointer->next->next : pointer to next node. + + pointer->next->next->info : 2 + + pointer->next->next->next : null + +## Implementation + +- [C++](../../../algorithms/CPlusPlus/Linked-Lists/singly.cpp) +- [Java](../../../algorithms/Java/linked-lists/singly.java) +- [JavaScript](../../../algorithms/JavaScript/src/linked-lists/singly.js) +- [Python](../../../algorithms/Python/linked_lists/singly.py) + +## Video URL + +[Watch Linear Search Implementation](https://www.youtube.com/watch?v=HB7TcYklBHY) + + +## References + +["Adam Drozdek", "Data Structures and Algorithms in C++", "Fourth Edition".](https://www.ebay.com/itm/Data-Structures-and-Algorithms-in-C-by-Adam-Drozdek-Fourth-Edition-/254763347609)