This project contains implementations for many different types of data structures commonly taught in computer science, and many of which are commonly used in real-world production environments. These basic data structures represent small building blocks upon which large data-processing applications can be built and run efficiently.
This project was created as a reference for myself, as I learned about these data structures and algorithms. Lately it seems to be getting visibility from others. As such, visitors should understand a few things.
-
The code for these data structures contains very little error checking. This is intentional, as to reduce the amount of code clutter and focus solely on the core components of the algorithms. In a production environment, error checking is likely needed for most of these examples.
-
The code examples generally lacks consistent naming conventions. Everything from the names of files, to names of functions, to names of variables, can differ from one example to the next. This is a result of using multiple resources when researching these data structures. I plan to go through and try to standardize everything.
-
Some algorithms have a README file with a brief description, but most don't. I plan to try to add more documentation to help visitors decide which data structure and algorithm is most appropriate for their application.
Linear Data Structure:
- Stack - Basic Implementation
- Stack - Parentheses Balance Checking
- Queue - Basic Implementation
- Conversion of Infix to Postfix notation. Evaluation of Postfix notation
- Deque – Double-Ended Queue
- Singly Linked List: Create, Print and Count the Item
- Singly Linked List: Create, Insert, Search, Delete and Print operation
- Doubly Linked List: Insert, Print the list forward and reverse order
- Doubly Linked List: Insert, Delete, Print the list forward and reverse order
- Circular Singly Linked List: Insert, Delete, Traverse (Print)
- Circular Doubly Linked List: Insert, Delete, Traverse (print) Forward order and Reverse order
Non-Linear Data Structure:
- Tree - Binary Search Tree - BST [Insert, Search and Traversal]
- Tree – Binary Search Tree – BST [Find Maximum and Minimum value]
- Tree – Binary Search Tree – BST [Delete any node of BST]
- Tree – Binary Search Tree – BST [Checking: Is it a BST or Not?]
This program is free software; you can redistribute it and/or modify it under the terms of the MIT License (MIT). See LICENSE for more details.