Terms related to Data Structures:
1. Data Structure: A way of organizing and storing data to perform efficient operations.
2. Array: A collection of elements of the same data type, stored in contiguous memory locations.
3. Linked List: A linear data structure consisting of nodes connected by pointers.
4. Singly Linked List: A linked list in which each node contains a data element and a pointer to the next node.
5. Doubly Linked List: A linked list in which each node contains a data element and pointers to both the next and previous nodes.
6. Circular Linked List: A linked list in which the last node points back to the first node, forming a circular structure.
7. Stack: A linear data structure that follows the Last-In-First-Out (LIFO) principle.
8. Push: The operation of adding an element to the top of a stack.
9. Pop: The operation of removing the topmost element from a stack.
10. Peek: The operation of accessing the topmost element of a stack without removing it.
11. Queue: A linear data structure that follows the First-In-First-Out (FIFO) principle.
12. Enqueue: The operation of adding an element to the back of a queue.
13. Dequeue: The operation of removing the frontmost element from a queue.
14. Priority Queue: A queue in which elements are assigned priorities and dequeued based on their priority.
15. Circular Queue: A queue implemented using an array where the front and rear wrap around to the beginning of the array.
16. Tree: A hierarchical data structure consisting of nodes connected by edges.
17. Binary Tree: A tree in which each node has at most two children.
18. Binary Search Tree (BST): A binary tree in which the left child of a node is less than the node, and the right child is greater.
19. Balanced Tree: A tree in which the heights of the left and right subtrees differ by at most one.
20. AVL Tree: A self-balancing binary search tree in which the heights of the left and right subtrees differ by at most one.
21. Red-Black Tree: A self-balancing binary search tree with additional coloring properties.
22. Heap: A complete binary tree that satisfies the heap property.
23. Min Heap: A heap in which the parent nodes have a value less than or equal to their children.
24. Max Heap: A heap in which the parent nodes have a value greater than or equal to their children.
25. Graph: A collection of vertices connected by edges.
26. Directed Graph: A graph in which the edges have a specific direction.
27. Undirected Graph: A graph in which the edges have no specific direction.
28. Weighted Graph: A graph in which the edges have weights or costs associated with them.
29. Adjacency Matrix: A matrix representation of a graph, where each cell represents the presence or absence of an edge.
30. Adjacency List: A list representation of a graph, where each vertex is associated with a list of its adjacent vertices.
31. Hash Table: A data structure that maps keys to values using a hash function.
32. Hash Function: A function that takes an input (key) and produces a fixed-size value (hash code).
33. Collision: The scenario when two or more keys produce the same hash code.
34. Collision Resolution: Techniques to handle collisions, such as chaining or open addressing.
35. Chaining: A collision resolution technique where each bucket in a hash table contains a linked list of elements.
36. Open Addressing: A collision resolution technique where collisions are resolved by finding an alternative location within the table.
37. Linear Probing: An open addressing technique that resolves collisions by searching sequentially for the next available slot.
38. Quadratic Probing: An open addressing technique that resolves collisions by using a quadratic function to search for the next available slot.
39. Hash Set: A set implementation that stores unique elements using a hash table.
40. Hash Map: A key-value map implementation that stores key-value pairs using a hash table.
41. Trie: A tree-like data structure used to store a collection of strings.
42. Bit Array: A data structure that compactly represents a sequence of bits.
43. Bloom Filter: A probabilistic data structure used to test whether an element is a member of a set.
44. Skip List: A data structure that allows for efficient search, insertion, and deletion operations on a sorted sequence of elements.
45. Union-Find Disjoint Set: A data structure that efficiently maintains disjoint sets and performs union and find operations.
46. Segment Tree: A tree data structure used to efficiently answer range queries on an array.
47. Fenwick Tree: A tree-based data structure used to efficiently answer prefix sum queries on an array.
48. B-Tree: A self-balancing search tree that maintains sorted data and allows for efficient search, insertion, and deletion operations.
49. B+ Tree: A variant of the B-tree that optimizes for efficient disk-based storage and range queries.
50. Splay Tree: A self-adjusting binary search tree that brings frequently accessed nodes closer to the root.
51. Rope: A data structure for efficiently manipulating large strings by splitting and concatenating smaller string chunks.
52. Disjoint-Set Data Structure: A data structure that keeps track of a set of elements partitioned into disjoint subsets.
53. AVL Tree: A self-balancing binary search tree in which the heights of the left and right subtrees differ by at most one.
54. Suffix Tree: A tree-based data structure used for efficiently searching strings and substrings.
55. Suffix Array: A sorted array of all suffixes of a string, used for efficient string searching.
56. Range Tree: A data structure used to efficiently query multidimensional ranges or intervals.
57. Cartesian Tree: A binary tree representation of a sequence that preserves the order of the elements.
58. KD-Tree: A binary tree structure used for efficient search in a k-dimensional space.
59. Trie: A tree-like data structure used to store a collection of strings, with common prefixes shared among nodes.
60. Radix Tree: A compressed trie data structure that allows for efficient string lookups.
61. Binary Indexed Tree (BIT): A data structure used to efficiently answer cumulative frequency queries on an array.
62. Dancing Links: A technique for efficiently solving exact cover problems, based on a matrix of ones and zeros.
63. Rope Data Structure: A data structure used to efficiently handle large strings by representing them as a balanced binary tree of smaller strings.
64. Huffman Coding: A lossless compression algorithm that assigns variable-length codes to characters based on their frequency.
65. Merkle Tree: A hash tree data structure used to efficiently verify the integrity and consistency of data.
66. Patricia Trie: A compact trie data structure that stores keys by their prefixes, allowing for efficient search and storage.
67. Bloom Tree: A variant of the Bloom filter data structure that supports efficient range queries.
68. Fibonacci Heap: A heap data structure with a more efficient merge operation, often used in graph algorithms.
69. Binomial Heap: A heap data structure that supports efficient insertion, deletion, and merging of heaps.
70. Ternary Search Tree: A data structure used for efficient storage and retrieval of strings with low memory overhead.
71. Rope Data Structure: A data structure for efficiently manipulating large strings by splitting and concatenating smaller
string chunks.
72. Wavelet Tree: A data structure used for efficient range queries on arrays of integers.
73. Discrete Fourier Transform (DFT): A mathematical transform used to convert a signal from its time-domain representation to its frequency-domain representation.
74. Fast Fourier Transform (FFT): An algorithm for efficiently computing the Discrete Fourier Transform.
75. Burrows-Wheeler Transform (BWT): A reversible transform used in data compression algorithms like the Burrows-Wheeler Transform.
76. Circular Buffer: A fixed-size buffer that overwrites the oldest elements when new elements are added.
77. Cartesian Product: The set of all possible ordered pairs formed by selecting one element from each of two sets.
78. Convex Hull: The smallest convex polygon that encloses a given set of points.
79. Cuckoo Hashing: A hashing technique that resolves collisions by using multiple hash functions and multiple hash tables.
80. De Bruijn Sequence: A cyclic sequence of 0s and 1s that contains every possible k-bit subsequence exactly once.
81. Eulerian Path: A path that visits every edge of a graph exactly once.
82. Huffman Tree: A binary tree used in Huffman coding, where each leaf node represents a character and each internal node represents the merge of two nodes.
83. Interval Tree: A tree data structure used for efficient searching and querying of intervals.
84. Josephus Problem: A mathematical problem of determining the last remaining person in a circle after eliminating every k-th person.
85. Knapsack Problem: A combinatorial optimization problem of selecting items to maximize the total value within a given weight constraint.
86. Longest Common Prefix (LCP) Array: An array that stores the longest common prefix lengths between consecutive suffixes of a string.
87. Longest Increasing Subsequence (LIS): The longest subsequence of a given sequence that is in increasing order.
88. Minimum Spanning Tree (MST): A tree that spans all the vertices of a connected, weighted graph with the minimum possible total edge weight.
89. Range Minimum Query (RMQ): A data structure used to efficiently find the minimum value in a given range of an array.
90. Smith-Waterman Algorithm: A dynamic programming algorithm for local sequence alignment, commonly used in bioinformatics.
91. Topological Sorting: A linear ordering of the vertices of a directed graph such that for every directed edge uv, vertex u comes before v in the ordering.
92. Traveling Salesman Problem (TSP): A combinatorial optimization problem of finding the shortest possible route that visits a given set of cities exactly once.
93. Two Pointers Technique: A technique that uses two pointers to efficiently solve problems that involve iterating over arrays or linked lists.
94. Van Emde Boas Tree: A tree-based data structure that provides efficient operations for maintaining a dynamic set of elements.
95. Minimum-Cost Spanning Tree: A tree that spans all the vertices of a connected, weighted graph with the minimum possible total edge weight.
96. Bitmasking: A technique that uses bitwise operations to manipulate or store information in a compact manner.
97. Inclusion-Exclusion Principle: A principle used in combinatorics to count the number of elements in a union or intersection of sets.
98. Gaussian Elimination: A method for solving systems of linear equations by performing row operations on an augmented matrix.
99. Cycle Detection: The process of determining whether a directed or undirected graph contains a cycle.
100. Radix Sort: A linear-time sorting algorithm that sorts elements based on their digits or characters.
101. Backtracking: A technique for finding solutions to combinatorial problems by exploring all possible options and backtracking when a solution is not found.
102. Depth-First Search (DFS): A graph traversal algorithm that explores as far as possible along each branch before backtracking.
103. Breadth-First Search (BFS): A graph traversal algorithm that explores all the vertices of a graph in breadth-first order.
104. Dijkstra's Algorithm: An algorithm for finding the shortest path between two nodes in a weighted graph.
105. Bellman-Ford Algorithm: An algorithm for finding the shortest path between two nodes in a weighted graph with negative edge weights.
106. Floyd-Warshall Algorithm: An algorithm for finding the shortest paths between all pairs of nodes in a weighted graph.
107. Prim's Algorithm: An algorithm for finding the minimum spanning tree of a connected, weighted graph.
108. Kruskal's Algorithm: An algorithm for finding the minimum spanning tree of a connected, weighted graph.
109. Kosaraju's Algorithm: An algorithm for finding strongly connected components in a directed graph.
110. Tarjan's Algorithm: An algorithm for finding strongly connected components in a directed graph.
111. Johnson's Algorithm: An algorithm for finding the shortest paths between all pairs of nodes in a weighted graph, even with negative edge weights.
112. Edmonds-Karp Algorithm: An algorithm for finding the maximum flow in a flow network.
113. Ford-Fulkerson Algorithm: An algorithm for finding the maximum flow in a flow network.
114. Hopcroft-Karp Algorithm: An algorithm for finding the maximum cardinality matching in a bipartite graph.
115. Boyer-Moore Algorithm: A string searching algorithm that performs pattern matching using a backward scan.
116. Knuth-Morris-Pratt Algorithm: A string searching algorithm that performs pattern matching using a prefix function.
117. Rabin-Karp Algorithm: A string searching algorithm that performs pattern matching using a rolling hash.
118. A* Search Algorithm: A search algorithm that finds the shortest path between two nodes in a graph, taking into account heuristic estimates.
119. B* Tree: A self-balancing search tree that combines the characteristics of both B-trees and binary search trees.
120. B+ Tree: A self-balancing search tree optimized for efficient disk-based storage.
121. Van Emde Boas Priority Queue: A priority queue data structure that provides efficient operations for maintaining a dynamic set of elements.
122. Counting Sort: A sorting algorithm that works by counting the number of occurrences of each distinct element in an input array.
123. Radix Sort: A non-comparative sorting algorithm that sorts elements based on their digits or characters.
124. Bucket Sort: A sorting algorithm that distributes elements into a finite number of buckets and then sorts each bucket individually.
125. External Sorting: A sorting algorithm designed to handle large datasets that do not fit into memory.
126. Bogo Sort: A highly inefficient sorting algorithm that generates permutations of an array until it is sorted.
127. Stooge Sort: A recursive sorting algorithm that repeatedly divides the array into two-thirds and sorts the smaller sub-arrays.
128. Pancake Sorting: A sorting algorithm that flips pancakes in a stack to sort them in ascending order.
129. Cocktail Shaker Sort: A variation of the bubble sort algorithm that sorts the array bidirectionally, moving both the smallest and largest elements to their correct positions.
130. Bitonic Sort: A comparison-based sorting algorithm that can sort in both ascending and descending order.
131. Smoothsort: A comparison-based sorting algorithm that is an efficient variant of heapsort.
132. Shellsort: A comparison-based sorting algorithm that incrementally sorts elements at decreasing intervals.
133. Spreadsort: A comparison-based sorting algorithm that uses an adaptive merge strategy to achieve high performance.
134. Introsort: A hybrid sorting algorithm that combines quicksort, heapsort, and insertion sort for efficient
performance in most cases.
135. Strand Sort: A sorting algorithm that repeatedly pulls sorted subarrays from the input array until it is empty.
136. Unbalanced Tree Sort: A sorting algorithm that builds an unbalanced binary search tree from the input and traverses it in-order.
137. Pigeonhole Sort: A sorting algorithm that works by distributing elements into pigeonholes and then extracting them in order.
138. American Flag Sort: A variation of radix sort that uses additional memory to sort in place.
139. Tournament Sort: A sorting algorithm that uses a tournament-style comparison to find the maximum and minimum elements repeatedly.
140. Gravity Sort: A sorting algorithm that works by simulating the effect of gravity on an array of values.
141. Bidirectional Bubble Sort: A variation of the bubble sort algorithm that sorts the array bidirectionally, moving both the smallest and largest elements to their correct positions.
142. Swap Sort: A sorting algorithm that repeatedly swaps adjacent elements until the array is sorted.
143. Merge Sort: A comparison-based sorting algorithm that divides the input array into smaller subarrays, sorts them, and then merges them back together.
144. Quick Sort: A comparison-based sorting algorithm that divides the input array into smaller subarrays based on a pivot element, and recursively sorts the subarrays.
145. Heap Sort: A comparison-based sorting algorithm that uses a binary heap data structure to sort elements.
146. Bubble Sort: A simple comparison-based sorting algorithm that repeatedly swaps adjacent elements until the array is sorted.
147. Selection Sort: A simple comparison-based sorting algorithm that repeatedly selects the minimum element from the unsorted part of the array and swaps it with the first element.
148. Insertion Sort: A simple comparison-based sorting algorithm that builds the final sorted array one element at a time.
149. Shell Sort: An efficient variation of insertion sort that uses different gap values to sort elements in larger steps before refining the sorting in smaller steps.
150. Radix Exchange Sort: A variation of radix sort that sorts elements using a combination of radix sort and quicksort.
151. Strand Sort: A sorting algorithm that repeatedly pulls sorted subarrays from the input array until it is empty.
152. Smoothsort: A comparison-based sorting algorithm that is an efficient variant of heapsort.
153. Cycle Sort: A comparison-based sorting algorithm that minimizes the number of writes to the original array.
154. Pairwise Sorting Network: A sorting algorithm that consists of a network of comparators that compare pairs of elements.
155. Bead Sort (Gravity Sort): A natural sorting algorithm that uses the concept of beads on a vertical post to sort elements.
156. Counting Quicksort: A variation of quicksort that uses counting sort for small subarrays.
157. Burstsort: A sorting algorithm that uses bursts of key comparisons to sort elements.
158. Strand Partition: A partitioning algorithm used in quicksort that works efficiently with arrays that contain many duplicate elements.
159. Stooge Sort: A recursive sorting algorithm that repeatedly divides the array into two-thirds and sorts the smaller sub-arrays.
160. Tree Sort: A sorting algorithm that builds a binary search tree from the input elements and then performs an in-order traversal to obtain the sorted order.
161. Tim Sort: A hybrid sorting algorithm derived from merge sort and insertion sort, designed to perform well on many kinds of real-world data.
162. Bitonic Merge Sort: A parallel sorting algorithm based on the concept of bitonic sequences and bitonic merges.
163. Pigeonhole Sort: A sorting algorithm that works by distributing elements into pigeonholes and then extracting them in order.
164. Timsort: A hybrid stable sorting algorithm derived from merge sort and insertion sort, designed to perform well on many kinds of real-world data.
165. Binary Tree Sort: A sorting algorithm that builds a binary search tree from the input elements and then performs an in-order traversal to obtain the sorted order.
166. Pancake Sorting: A sorting algorithm that flips pancakes in a stack to sort them in ascending order.
167. Patience Sorting: A sorting algorithm based on the game of patience, where cards are sorted by creating piles.
168. Bidirectional Bubble Sort: A variation of the bubble sort algorithm that sorts the array bidirectionally, moving both the smallest and largest elements to their correct positions.
169. Odd-Even Sort: A sorting algorithm that compares and swaps adjacent elements in pairs, alternating between odd and even indices.
170. Library Sort: A sorting algorithm that uses an external sorting algorithm as a subroutine.
171. Smoothsort: A comparison-based sorting algorithm that is an efficient variant of heapsort.
172. Pigeonhole Sort: A sorting algorithm that works by distributing elements into pigeonholes and then extracting them in order.
173. Comb Sort: A variation of bubble sort that compares and swaps elements with a large gap, gradually reducing the gap until it becomes 1.
174. Quickhull: A variation of the quicksort algorithm used for finding the convex hull of a set of points.
175. Strand Sort: A sorting algorithm that repeatedly pulls sorted subarrays from the input array until it is empty.
176. Radix Heap Sort: A variation of radix sort that uses a binary heap for sorting.
177. Tree Sort: A sorting algorithm that builds a binary search tree from the input elements and then performs an in-order traversal to obtain the sorted order.
178. Stooge Sort: A recursive sorting algorithm that repeatedly divides the array into two-thirds and sorts the smaller sub-arrays.
179. Shell Sort: A variation of insertion sort that divides the input array into smaller subarrays using a decreasing sequence of gap values.
180. Gnome Sort: A simple sorting algorithm that works by repeatedly comparing adjacent elements and swapping them if they are in the wrong order.
181. Strand Partition Sort: A variation of quicksort that partitions the array into two parts: the sorted part and the unsorted part.
182. In-Place Merge Sort: A variation of merge sort that sorts the input array in-place, without using additional memory.
183. Tournament Sort: A sorting algorithm that uses a tournament-style comparison to find the maximum and minimum elements repeatedly.
184. Brick Sort: A sorting algorithm that sorts the input array in two directions, moving larger elements to the end and smaller elements to the beginning.
185. Radix Sort: A non-comparative sorting algorithm that sorts elements based on their digits or characters.
186. Lazy Stable Sort: A variation of quicksort that provides stable sorting by delaying swapping of elements until necessary.
187. Unshuffle Sort: A sorting algorithm that partially sorts the input array by grouping elements with similar values.
188. Shatter Sort: A sorting algorithm that partitions the input array into smaller subarrays and sorts them individually.
189. Bead Sort: A natural sorting algorithm that uses the concept of beads on a vertical post to sort elements.
190. Tournament Selection Sort: A sorting algorithm that uses a tournament-style comparison to find the maximum or minimum elements repeatedly.
191. Grail Sort: A cache-efficient sorting algorithm that uses a variant of merge sort with a block-based merging strategy.
192. Best Shuffle Sort: A sorting algorithm that shuffles the input array using Fisher-Yates shuffle and then sorts it.
193. Pancake Sorting: A sorting algorithm that flips pancakes in a stack to sort them in ascending order.
194. Circle Sort: A sorting algorithm that repeatedly moves the largest element to its correct position in a circular fashion.
195. In-Place Radix Sort: A variation of radix sort that sorts the input array in
-place, without using additional memory.
196. Pairwise Sorting Network: A sorting algorithm that consists of a network of comparators that compare pairs of elements.
197. Cycle Sort: A comparison-based sorting algorithm that minimizes the number of writes to the original array.
198. Bipartite Partition Sort: A sorting algorithm that partitions the input array into two parts, with all elements in one part smaller than those in the other part.
199. Gravity Sort: A sorting algorithm that works by simulating the effect of gravity on an array of values.
200. Pop Sort: A variation of bubble sort that moves the smallest elements to the beginning and the largest elements to the end of the array.
Courses
- Home
- OOP
- Data Structures
- DLD
- Algorithms
- DBMS
- Computer Networks
- SE
- Compiler Construction
- Artificial Intelligence
- Theory of Automata
- DCN
- Digital Image Processing
- OS
- Web Engineering
- CSA
- Network Security
- Assembly Language
- Operation Research
- Wireless & Mobile Communication
- Computer Graphics
- Numerical Analysis
- Discrete Structures
- System Programming
- Principles of Programming Languages
- Programming Fundamentals
Data Structures
Subscribe to:
Posts (Atom)