Skip to content

Repository files navigation

Data Structures and Algorithms

A structured collection of C++ exercises covering fundamental algorithms, matrix techniques, pattern matching, stacks, linked lists, and polynomial operations.

The repository is organized into three focused subprojects. Each subproject contains its own README with the exercises, concepts, and build instructions.

Repository Structure

Data-Structures-and-Algorithms/
│
├── 01-Pattern-Matching/
│   ├── src/
│   │   ├── string_pattern_matching.cpp
│   │   └── matrix_pattern_matching.cpp
│   └── README.md
│
├── 02-Matrix-Algorithms/
│   ├── src/
│   │   ├── magic_square.cpp
│   │   └── diagonal_matrix_addition.cpp
│   └── README.md
│
├── 03-Data-Structures/
│   ├── src/
│   │   ├── stack_symmetry.cpp
│   │   └── polynomial_linked_list.cpp
│   └── README.md
│
├── .gitignore
├── LICENSE
└── README.md

Subprojects

01 — Pattern Matching

Introduces direct string pattern matching and exact submatrix searching.

Topics: brute-force matching, string traversal, nested loops, matrix pattern recognition.

02 — Matrix Algorithms

Contains a magic-square generator and compact three-diagonal matrix addition.

Topics: two-dimensional arrays, diagonal storage, modular indexing, matrix representation.

03 — Data Structures

Contains stack-based symmetry checking and polynomial arithmetic using linked lists.

Topics: stacks, LIFO, pointers, linked lists, dynamic memory, polynomial representation.

Learning Goals

This repository demonstrates practical work with:

  • C++ fundamentals
  • Functions and modular decomposition
  • Arrays and matrices
  • Strings
  • Searching algorithms
  • Stack data structures
  • Linked lists
  • Pointer manipulation
  • Dynamic memory management
  • Algorithmic problem solving

Requirements

  • C++17-compatible compiler
  • GCC / MinGW, Clang, or MSVC
  • Terminal or an IDE such as Visual Studio Code

Compilation

Each subproject contains its own build instructions.

Example:

g++ -std=c++17 -Wall -Wextra -pedantic source_file.cpp -o program

Repository Philosophy

The exercises are organized as a learning-oriented progression from basic algorithmic techniques toward explicit data-structure implementation.

The code intentionally keeps the core algorithms visible rather than hiding them behind large frameworks or external libraries.

Notes on Organization

The original coursework was supplied as separate series. To keep this repository limited to exactly three subprojects, the Series 3 stack exercise and Series 4 polynomial linked-list exercise are grouped under 03-Data-Structures.

A few original demonstration-level issues were corrected only where necessary for the examples to execute according to their stated purpose; the underlying exercise ideas and algorithms remain recognizable.

License

MIT License. See LICENSE.

About

A structured C++17 collection of data structures and algorithms exercises covering pattern matching, matrix algorithms, stacks, linked lists, and polynomial operations.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages