This repository is a comprehensive portfolio of console applications developed for my Algorithms and Data Structures module. It showcases the implementation of fundamental computer science concepts, focusing on efficient data management, search optimization, and algorithmic complexity.
The goal of this project is to demonstrate a deep understanding of how data structures operate under the hood. Rather than relying solely on built-in libraries, these implementations are built from scratch to highlight logic flow and memory management in C#.
| File | Description | Key Concept |
|---|---|---|
AVLTree.cs |
Self-balancing binary search tree. | Rotations, Height Balancing |
BSTree.cs |
Standard Binary Search Tree. | Recursion, In-order Traversal |
BinTree.cs |
Basic Binary Tree implementation. | Hierarchical Data |
Graph.cs / GraphNode.cs |
Adjacency-based graph structure. | Nodes & Edges, Connectivity |
LinkList.cs / Node.cs |
Custom Linked List implementation. | Pointer Logic, Dynamic Memory |
SelectionSortGen.cs |
Generic implementation of Selection Sort. | Sorting, Time Complexity |
- .NET SDK (Version 6.0 or higher recommended)
- An IDE like Visual Studio, VS Code, or JetBrains Rider.
- Clone the repository:
git clone https://github.com/Ashwashhere/AlgorithmsAndDataStructures.git
- Navigate to the project directory:
cd AlgorithmsAndDataStructures
- Restore dependencies and run:
dotnet run
- Tree Balancing: Implementing the AVL rotation logic to maintain search time.
- Generics: Utilizing C# Generics in
SelectionSortGen.csto ensure the algorithm works across different data types. - Graph Theory: Managing relationships between nodes and understanding traversal patterns.