Data Structure is a term where a computer system organizes, manages, and stores data in the memory to help achieve efficient modification and access. An example of data structure is an Array, where elements are stored in sequential order, allowing easy and efficient retrieval of each element’s values.
Many developers confuse Data Structure with a programming language. A data structure is nothing but a system of how data is organized and not a programming language. However, a data structure can be implemented in many languages, such as C, C++, Python, C#, etc.
Data Structure Characteristics
The main characteristics of Data Structures that each program should be familiar with are:
- Linear and non-Linear Data Structure: Data is arranged in sequences(Linear), such as Arrays, or unordered elements(non-Linear), such as Graphs.
- Homogeneous or non-homogeneous Data Structure: Data in a given structure are of the same Data Type (Homogeneous ) or different data types(non-homogeneous)
- Static or dynamic Data Structure: Data have fixed size( static) or expended/shrank size( Dynamic)
We will go through examples of data Structures that represent each characteristic later in this course.
Data Structure Types
- Arrays
- Linked lists
- Stacks
- Queues
- Hash tables
- Trees
- Graphs
- Tries
Each one of these types will be discussed in detail later in this course.
Modules
Data Structure - Arrays
Lessons
- Introduction to Arrays
- Implementation of Sorted Arrays
- Implementation of Suffix Arrays
- Implementation of Parallel Arrays
- Implementation of Dynamic Arrays
- Implementation of Variable-Length Arrays
- Implementation of Sparse Arrays
- Implementation of a Bit Array
- Implementation of Associative Array
- Implementation of Array Deque
- Program to Represent a Graph Using 2D Arrays
- Find the kth Smallest Element by Partitioning the Array
- Find the Median of Elements in Two Arrays
- Implement Count Inversion in an Array
- Find the Peak Element of an Array
- Sort an Array of n Elements Using Heap Sort Algorithm
- Find Closest Pair of Points in an Array
- Find the Maximum Sub-Array Sum using the Binary Search Approach
- Find the Median of Two Sorted Arrays using the Binary Search Approach
- Find the Maximum Subarray Sum in O(n2) Time (Naïve Method)
Data Structure - Linked List
Lessons
- Implement Merge Sort Algorithm on Linked List
- An implementation of an unrolled Linked List
- An Implementation of Hash Tables Chaining with Singly Linked Lists
- An Implementation of Hash Tables Chaining with Doubly Linked Lists
- Performing XOR Operation on Linked List
- Represent a Graph Using a Linked List
- Implement Sorted Linked List to Balanced Binary Search Tree
- Subtract Two Large Numbers using Linked List
- Implement a Singly Linked List
- Implement a Circular Singly Linked List
- Implement a Doubly Linked List
- Implement Stack using Linked List
- Read a Linked List in Reverse Order
- Implement Queue using Linked List