Software Engineering basics - Linear and Non-Linear data structure
1. Linear Data Structure
Definition:
In a linear data structure, data elements are arranged in a sequential manner, and each element is connected to its previous and next element. Data is stored and accessed in linear order.
Key Features:
-
Elements are arranged one after another.
-
Easy to traverse in a single run.
-
Memory is mostly used in a contiguous block.
Examples:
-
Array
-
Linked List
-
Stack
-
Queue
Use Cases:
-
Arrays for indexed access to data.
-
Stacks in expression evaluation and backtracking.
-
Queues in scheduling and asynchronous tasks.
2. Non-Linear Data Structure
Definition:
In a non-linear data structure, data elements are arranged hierarchically or in a non-sequential manner. One element can be connected to multiple elements.
Key Features:
-
No strict linear order.
-
Can represent complex relationships.
-
Memory is not necessarily contiguous.
Examples:
-
Tree (e.g., Binary Tree, BST, AVL Tree)
-
Graph (Directed, Undirected, Weighted, etc.)
-
Heap
Use Cases:
-
Trees in hierarchical data like file systems.
-
Graphs in networks, maps, and social media connections.
-
Heaps in priority queues.