Data Structures
Overview
Data Structures are foundational concepts in computer science and programming, used to store, organize, and manage data efficiently. They are essential for implementing algorithms and play a crucial role in enabling quick access, modification, and storage of data. This overview focuses on core data structures—such as arrays, linked lists, stacks, queues, trees, graphs, and hash tables—implemented using the C++ programming language.
Projects
Store Information About Shooter Game Creator
Telephone Communication System
Implement recursive linked list operations
Stack-based Calculator
Sorting Algorithms Program
Software to read all of the words from a public domain book to find the most common two word phrases.
Software to read all of the words from a public domain book to find the most common two word phrases.
Hash Table
Implemented program that reads all the words from a public domain book and calculate the top 100 most common words in the book.
Implemented program that reads all the words from a public domain book and calculate the top 100 most common words in the book.
Topics
Object Oriented Programming
▶
Overview
Review of Classes
Designing Classes
Implementing Classes
Using Classes
Operator Overloading
Complex Numbers
Polynomials
Templates
Numbers class
Vector class
Summery
Object Oriented Programming Lesson
[PDF]
Linked List
▶
Overview
Linked List Operations
Create List
Insert Head
Insert Tail
Print List
Search List
Sorted Insert
Delete Node
Delete List
Other List Representations
Head and Tail Pointers
Doubly Linked Lists
Summery
Linked List Lesson
[PDF]
Recursion
▶
Overview
Recursive Algorithms
Factorial
Power
Fibonacci
Binary search
Linked Lists
Towers of Hanoi
Greatest Common Divisor
N-Queens
Summary
Recursion Lesson
[PDF]
Stack
▶
Overview
Stack Interface
Stack Implementation
Array Based
Linked Lists Based
Stack Applications
Checking Patterns
Checking Braces
Postfix Expressions
Stack Based Flood Fill
Summary
Stack Lesson
[PDF]
Queues
▶
Overview
Queuse Interface
Queuse Implementation
Array Based
Circular Queue
Linked Lists Based
Queue Applications
Polygon Flood Fill
Discrete Event Simulation
Task Scheduling
Summery
Queues Lesson
[PDF]
Sorting Algorithms
▶
Overview
Algorithm Analysis
Sorting Techniques
Selection Sort
Boubble Sort
Insertion Sort
Merge Sort
Merge Sort Analysis
Quick Sort
Quick Sort Analysis
Counting Sort
Radix Sort
Summary
Sorting Algorithms Lesson
[PDF]
Hash Tables
▶
Overview
Hash Function
Integers, Floats, Strings
Collisions
Hash Table Implementation
Linear Probing
Double Hashing
Hash Buckets
Separate Chaining
Speed Analysis
Summary
Hsh Tables Lesson
[PDF]
Binary Trees
▶
Overview
Tree Terminology
Binary Search Trees
BST Class Definition
BST Print
BST Search
BST Insert
BST Delete
BST Balance
Summery
Binary Trees Lesson
[PDF]
Heaps
▶
Overview
Heap Operations
Heap Insert
Heap Remove
Heap Remove
Heap Implementation
Heap Testing
Heap Sort
Summery
Heaps Lesson
[PDF]
Recommended Resources
- cplusplus.com - Classes Tutorial
- cplusplus.com - Articles
- LearnCpp.com
- C++ Tutorials
- Online Compiler
- Documentation
- Developer Roadmaps
- C++ Interview Questions and Answers (2024)
- Top 100 C++ Coding Interview Questions and Answers (2024)
- GeeksforGeeks OOP in C++
- ISOCPP FAQ
- Visualising data structures and algorithms through animation
Source Code
Object Oriented Programming
Advanced OOP
bag1
bag2
bag3
book1
book2
book3
complex
dictionary
linear
music
numbers
numbers2
numbers3
poly
poly2
Student
video
video2
Linked List
Recursion
Stack
Stack1
Stack2
Stack3
Stack
braces.cpp
braces2.cpp
calculator.cpp
calculator2.cpp
floodfill.cpp
parse.cpp
pattern.cpp
pattern2.cpp