From 8663ba3969c13ad65f94db5d5bc2d0829c183c62 Mon Sep 17 00:00:00 2001 From: Murshal Akhtar Ansari Date: Mon, 21 Oct 2024 12:13:19 +0300 Subject: [PATCH] roadmap: added missing resource links in DSA (#7545) --- .../101-importance-of-datastructures.md | 7 ++++++- .../103-asymptotic-notation/100-big-o.md | 1 + .../content/107-tree-data-structure/102-avl-trees.md | 7 ++++++- .../content/107-tree-data-structure/103-b-trees.md | 7 ++++++- .../110-complex-data-structures/100-b-bplus-trees.md | 8 +++++++- .../content/110-complex-data-structures/101-skip-list.md | 7 ++++++- .../content/110-complex-data-structures/102-isam.md | 7 ++++++- 7 files changed, 38 insertions(+), 6 deletions(-) diff --git a/src/data/roadmaps/datastructures-and-algorithms/content/102-data-structures/101-importance-of-datastructures.md b/src/data/roadmaps/datastructures-and-algorithms/content/102-data-structures/101-importance-of-datastructures.md index a17dc5fad..b35ed3cf6 100644 --- a/src/data/roadmaps/datastructures-and-algorithms/content/102-data-structures/101-importance-of-datastructures.md +++ b/src/data/roadmaps/datastructures-and-algorithms/content/102-data-structures/101-importance-of-datastructures.md @@ -1,3 +1,8 @@ # Importance of Data Structures -Data structures are crucial in the field of computer science and coding because they offer a method of organizing and storing data in an efficient and manageable format. They're critical because they form the foundation for modern algorithm design. Your ability to choose or design the most suited data structure for a particular task can be the difference between a solution that's functional and efficient and one that isn't. They allow data to be processed in a variety of ways - stored, sorted, ordered, or accessed - which is integral to software or database development. By implementing effective data structures, programmers can enhance performance, ease coding procedures, allow flexibility of data and most importantly, reduce complexity of code in a significant manner. \ No newline at end of file +Data structures are crucial in the field of computer science and coding because they offer a method of organizing and storing data in an efficient and manageable format. They're critical because they form the foundation for modern algorithm design. Your ability to choose or design the most suited data structure for a particular task can be the difference between a solution that's functional and efficient and one that isn't. They allow data to be processed in a variety of ways - stored, sorted, ordered, or accessed - which is integral to software or database development. By implementing effective data structures, programmers can enhance performance, ease coding procedures, allow flexibility of data and most importantly, reduce complexity of code in a significant manner. + +Learn more from the following links: + +- [@article@Why Data Structures and Algorithms Are Important to Learn?](https://www.geeksforgeeks.org/why-data-structures-and-algorithms-are-important-to-learn/) +- [@video@What are Data Structures? Why is it Important?](https://www.youtube.com/watch?v=18V8Avz2OH8) diff --git a/src/data/roadmaps/datastructures-and-algorithms/content/104-algorithmic-complexity/103-asymptotic-notation/100-big-o.md b/src/data/roadmaps/datastructures-and-algorithms/content/104-algorithmic-complexity/103-asymptotic-notation/100-big-o.md index dc574a1ca..93f371c86 100644 --- a/src/data/roadmaps/datastructures-and-algorithms/content/104-algorithmic-complexity/103-asymptotic-notation/100-big-o.md +++ b/src/data/roadmaps/datastructures-and-algorithms/content/104-algorithmic-complexity/103-asymptotic-notation/100-big-o.md @@ -4,5 +4,6 @@ Learn more from the following links: +- [@article@Big-O Cheat Sheet](https://www.bigocheatsheet.com/) - [@video@Introduction to Big O Notation and Time Complexity](https://www.youtube.com/watch?v=D6xkbGLQesk) - [@video@Big-O Notation](https://www.youtube.com/watch?v=BgLTDT03QtU) diff --git a/src/data/roadmaps/datastructures-and-algorithms/content/107-tree-data-structure/102-avl-trees.md b/src/data/roadmaps/datastructures-and-algorithms/content/107-tree-data-structure/102-avl-trees.md index 1b6dbd90f..09d558f9f 100644 --- a/src/data/roadmaps/datastructures-and-algorithms/content/107-tree-data-structure/102-avl-trees.md +++ b/src/data/roadmaps/datastructures-and-algorithms/content/107-tree-data-structure/102-avl-trees.md @@ -1,3 +1,8 @@ # AVL Trees -An **AVL tree** is a type of binary search tree that is self-balancing, which means the heights of the two child subtrees of any node in the tree differ by at most one. If at any point the difference becomes greater than one, rebalancing is done to restore the property. The tree is named after its inventors, G.M. Adelson-Velsky and E.M. Landis, who introduced it in 1962. Each node in an AVL tree carries extra information (its Balance Factor) which could be either -1, 0, or +1. AVL trees balance themselves by rotating sub-trees in different manners(named as Left-Left rotation, Right-Right rotation, Left-Right rotation, and Right-Left rotation) whenever an insert operation causes the balance factor to go beyond this range. \ No newline at end of file +An **AVL tree** is a type of binary search tree that is self-balancing, which means the heights of the two child subtrees of any node in the tree differ by at most one. If at any point the difference becomes greater than one, rebalancing is done to restore the property. The tree is named after its inventors, G.M. Adelson-Velsky and E.M. Landis, who introduced it in 1962. Each node in an AVL tree carries extra information (its Balance Factor) which could be either -1, 0, or +1. AVL trees balance themselves by rotating sub-trees in different manners(named as Left-Left rotation, Right-Right rotation, Left-Right rotation, and Right-Left rotation) whenever an insert operation causes the balance factor to go beyond this range. + +Learn more from the following links: + +- [@article@AVL Tree Data Structure](https://www.geeksforgeeks.org/introduction-to-avl-tree/) +- [@video@AVL trees in 5 minutes — Intro & Search](https://www.youtube.com/watch?v=DB1HFCEdLxA) diff --git a/src/data/roadmaps/datastructures-and-algorithms/content/107-tree-data-structure/103-b-trees.md b/src/data/roadmaps/datastructures-and-algorithms/content/107-tree-data-structure/103-b-trees.md index 5b3f59f6a..8393a2b66 100644 --- a/src/data/roadmaps/datastructures-and-algorithms/content/107-tree-data-structure/103-b-trees.md +++ b/src/data/roadmaps/datastructures-and-algorithms/content/107-tree-data-structure/103-b-trees.md @@ -1,3 +1,8 @@ # B-Trees -B-Tree is a self-balanced search tree data structure that maintains sorted data and allows for efficient insertion, deletion, and search operations. It is most commonly used in systems where read and write operations are performed on disk, such as databases and file systems. The main characteristic of a B-Tree is that all leaves are at the same level, and the internal nodes can store more than one key. Each node in a B-Tree contains a certain number of keys and pointers which navigate the tree. The keys act as separation values which divide its subtrees. For example, if a node contains the values [10,20,30] it has four children: the first contains values less than 10, the second contains values between 10 and 20, the third contains values between 20 and 30, and the fourth contains values greater than 30. \ No newline at end of file +B-Tree is a self-balanced search tree data structure that maintains sorted data and allows for efficient insertion, deletion, and search operations. It is most commonly used in systems where read and write operations are performed on disk, such as databases and file systems. The main characteristic of a B-Tree is that all leaves are at the same level, and the internal nodes can store more than one key. Each node in a B-Tree contains a certain number of keys and pointers which navigate the tree. The keys act as separation values which divide its subtrees. For example, if a node contains the values [10,20,30] it has four children: the first contains values less than 10, the second contains values between 10 and 20, the third contains values between 20 and 30, and the fourth contains values greater than 30. + +Learn more from the following links: + +- [@article@Introduction of B-Tree](https://www.geeksforgeeks.org/introduction-of-b-tree-2/) +- [@video@B-trees in 4 minutes — Intro](https://www.youtube.com/watch?v=FgWbADOG44s) diff --git a/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/100-b-bplus-trees.md b/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/100-b-bplus-trees.md index 7c3e15061..522637cee 100644 --- a/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/100-b-bplus-trees.md +++ b/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/100-b-bplus-trees.md @@ -1,3 +1,9 @@ # B/B+ Trees -`B trees` and `B+ trees` are both types of self-balancing, sorted, tree-based data structures that maintain sorted data in a way that allows for efficient insertion, deletion, and search operations. A `B tree` is a tree data structure in which each node has multiple keys and can be in more than two children nodes. Each internal node in a `B tree` can contain a variable number of keys and pointers. The keys act as separation values which divide its subtrees. One important aspect of a `B tree` is that every key in the node also appears in the parent node. On the other hand, a `B+ tree` is an extension of a `B tree` which allows for efficient traversal of data. In a `B+ tree`, data pointers are stored only at the leaf nodes of the tree, making every leaf node of a `B+ tree` a linked list. The intermediary nodes only use the keys to aid with the search. \ No newline at end of file +`B trees` and `B+ trees` are both types of self-balancing, sorted, tree-based data structures that maintain sorted data in a way that allows for efficient insertion, deletion, and search operations. A `B tree` is a tree data structure in which each node has multiple keys and can be in more than two children nodes. Each internal node in a `B tree` can contain a variable number of keys and pointers. The keys act as separation values which divide its subtrees. One important aspect of a `B tree` is that every key in the node also appears in the parent node. On the other hand, a `B+ tree` is an extension of a `B tree` which allows for efficient traversal of data. In a `B+ tree`, data pointers are stored only at the leaf nodes of the tree, making every leaf node of a `B+ tree` a linked list. The intermediary nodes only use the keys to aid with the search. + +Learn more from the following resources: + +- [@article@Introduction of B Tree](https://www.geeksforgeeks.org/introduction-of-b-tree-2/) +- [@article@Introduction of B+ Tree](https://www.geeksforgeeks.org/introduction-of-b-tree/) +- [@video@B Trees and B+ Trees. How they are useful in Databases](https://www.youtube.com/watch?v=aZjYr87r1b8) diff --git a/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/101-skip-list.md b/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/101-skip-list.md index 38ef48416..9d70dec4f 100644 --- a/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/101-skip-list.md +++ b/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/101-skip-list.md @@ -1,3 +1,8 @@ # Skip List -A **Skip List** is a probabilistic data structure that allows efficient search, insertion, and removal operations. It is a layered list that consists of a base list holding all the elements and several lists layered on top, each layer containing a random subset of the elements from the layer below. The highest level contains only one element, the maximum. Every element in the lists is connected by a link to the element of the same value in the list below. This structure provides a balance between the speed of binary search trees and the ease of implementation of linked lists, providing an efficient means for storing data while allowing fast retrieval, even within large sets of data. \ No newline at end of file +A **Skip List** is a probabilistic data structure that allows efficient search, insertion, and removal operations. It is a layered list that consists of a base list holding all the elements and several lists layered on top, each layer containing a random subset of the elements from the layer below. The highest level contains only one element, the maximum. Every element in the lists is connected by a link to the element of the same value in the list below. This structure provides a balance between the speed of binary search trees and the ease of implementation of linked lists, providing an efficient means for storing data while allowing fast retrieval, even within large sets of data. + +Learn more from the following resources: + +- [@article@Skip List – Efficient Search, Insert and Delete in Linked List](https://www.geeksforgeeks.org/skip-list/) +- [@video@Skip Lists](https://www.youtube.com/watch?v=NDGpsfwAaqo) diff --git a/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/102-isam.md b/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/102-isam.md index 35490cf29..0896668cc 100644 --- a/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/102-isam.md +++ b/src/data/roadmaps/datastructures-and-algorithms/content/110-complex-data-structures/102-isam.md @@ -1,3 +1,8 @@ # ISAM -ISAM, which stands for Indexed Sequential Access Method, is a type of disk storage access method developed by IBM. It combines features of both sequential and direct access methods to store and retrieve data. ISAM primarily organizes data sequentially but creates an index to provide direct access to the data blocks. This index allows for quick retrieval of data records, improving efficiency and performance. A key feature of ISAM is that it maintains the data sequence even after insertions and deletions, ensuring that the data remains ordered for efficient processing. \ No newline at end of file +ISAM, which stands for Indexed Sequential Access Method, is a type of disk storage access method developed by IBM. It combines features of both sequential and direct access methods to store and retrieve data. ISAM primarily organizes data sequentially but creates an index to provide direct access to the data blocks. This index allows for quick retrieval of data records, improving efficiency and performance. A key feature of ISAM is that it maintains the data sequence even after insertions and deletions, ensuring that the data remains ordered for efficient processing. + +Learn more from the following resources: + +- [@article@ISAM in Database](https://www.geeksforgeeks.org/isam-in-database/) +- [@video@DBMS - Index Sequential Access Method (ISAM)](https://www.youtube.com/watch?v=EiW1VVPor10)