Skip to content

About

Personal repository for the dynamic data structures course in URU.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation


Dynamic Data Structures

Dynamic Data Structures - Sebastian Cohen

Repository for the Dynamic Data Structures course at URU. It gathers the final versions of the class assignments, from linked lists to trees and graphs.

Table of Contents
  1. About The Repository
  2. Getting Started
  3. Repository Structure
  4. Main Projects
  5. Roadmap

About The Repository

This repository brings together the material covered in the Dynamic Data Structures course. Its purpose is to keep the final, working version of each assignment in one organized place — linked lists, stacks and queues, binary trees, and graphs, all implemented from scratch in C++.

Each project folder is self-contained and has its own README with setup instructions and implementation details.

(back to top)

Built With

  • C++

(back to top)

Getting Started

Each project has its own compile/run instructions — see its individual README linked in Main Projects.

Prerequisites

  • GCC / G++ (MinGW on Windows, or the standard package on Linux/macOS)
  • C++11 or higher

Installation

  1. Clone the repo
    git clone https://github.com/jerichd4c/dynamic-data-structures.git
  2. Open the folder for the project you want to run.
  3. Follow that project's own README to compile and run it.

(back to top)

Repository Structure

These are the assignments currently available in the repository:

  • circular-linked-list-assignment/: simple and doubly circular linked lists for managing person data, with file persistence.
  • stack-queue-assignment/: stack inversion, priority queue processing, and a linked-list-based priority queue.
  • binary-tree-demo/: an N-ary genealogy tree and a self-balancing AVL tree.
  • graph-tree-assignment/: graph traversal via adjacency lists and adjacency matrices.
  • kingdom-binary-tree/: final project — a binary tree modeling royal family succession, with automatic crown transfer rules.

(back to top)

Main Projects

These are the assignments developed during the course. Each one has its own internal documentation.

Kingdom Binary Tree — Final Project

A binary tree implementation for royal family genealogy and succession — automatic king assignment on death, primogeniture and secondary heir rules, and automatic crown transfer for kings over 70.

  • Features: CSV import/export, living-heirs succession line, full CRUD on family members.
  • Documentation: Project README

Simple and doubly circular linked list implementations for managing person records.

  • Features: insert at position, delete by name, search by ID, forward/reverse display, CSV file persistence.
  • Documentation: Project README

Three independent programs built around fundamental linear data structures.

  • Features: in-place stack inversion, FIFO-compliant queue processing, and a priority queue built on linked lists.
  • Documentation: Project README

Two specialized tree structures: an interactive genealogy tree and a self-balancing AVL tree.

  • Features: CSV-driven genealogy tree construction, logarithmic-time AVL operations.
  • Documentation: Project README

Two graph representations built to compare their trade-offs directly.

  • Features: adjacency list (sparse) and adjacency matrix (dense) implementations of the same graph operations.
  • Documentation: Project README

(back to top)

Roadmap

This roadmap summarizes the course progress and can keep growing as new units or assignments are added.

  • Circular linked lists (simple and doubly linked).
  • Stacks and queues, including a priority queue.
  • Binary trees: a genealogy tree and a self-balancing AVL tree.
  • Graphs: adjacency list and adjacency matrix representations.
  • Final project: a binary tree modeling royal succession rules.

(back to top)

About

Personal repository for the dynamic data structures course in URU.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages