Skip to content

A repository for all assignments from my Data Structures and Algorithms (DSA) course. Includes implementations in C, covering linked lists, stacks, queues, trees, sorting algorithms, and recursion.

Notifications You must be signed in to change notification settings

dylanmc1ntee/Data-Structures-and-Algorithms

Repository files navigation

Computer Science 1 - Spring 2024

Collection of Work

This repository contains my work for Computer Science 1 at UCF during the Spring 2024 semester. It includes various C assignments and projects that demonstrate my progression in the language and my understanding of fundamental data structures and algorithms.

Assignments

Assignment 0: Foster Home Naming System

  • Description: Implements a foster home system where cat names are updated weekly based on assigned families. Each cat's name evolves as they move through different locations.
  • Key Concepts:
    • Leveraging the C string library
    • Using 2D arrays for name storage
    • Structs for organizing family and location data
    • String manipulation with strcat() and strcpy()

Assignment 1: Bandit Baiting

  • Description: Simulates a bait placement tracking system where food levels are monitored over time. Dynamic memory allocation is used to expand tracking structures as needed.
  • Key Concepts:
    • Dynamic Arrays and Resizing with realloc()
    • Structs for organizing location and food data
    • Linear Search for checking and updating locations
    • File input and output handling

Assignment 2: Elephant Extraction

  • Description: Implements a stack-based movement system for elephants searching for food in a grid. Elephants move based on food availability and backtrack if no food is found.
  • Key Concepts:
    • Singly Linked Lists for movement history
    • Stack Operations: Push, Pop, Peek
    • Dynamic Memory Allocation for grid storage
    • Recursive movement logic

Assignment 3: Cozy Level Calculation

  • Description: Calculates the maximum happiness level for a group of cats based on their relationships and initial comfort levels using brute-force combinations.
  • Key Concepts:
    • Recursive Functions for maximizing happiness
    • Generating Combinations of cat placements
    • Brute Force approach for optimization
    • Memory Management with dynamically allocated arrays

Assignment 4: Business Buyout Simulation

  • Description: Implements a simulation where a company attempts to buy out smaller businesses using a priority-based purchasing system. Merge Sort is used to order transactions.
  • Key Concepts:
    • Recursive Sorting Algorithms (Merge Sort)
    • Implementing a Stack for tracking purchases
    • Dynamic memory allocation for storing shop data
    • Efficient data processing techniques

Assignment 5: Corrupt Captors

  • Description: Implements a system to track captured raccoons using an AVL Tree with hat-size-based promotions and rotations.
  • Key Concepts:
    • AVL Trees and Self-Balancing Techniques
    • Treaps and Priority-Based Rotations
    • Recursive Insertions and Deletions
    • Tree Rotations for maintaining balance

Assignment 6: Pet Food Distribution

  • Description: Uses a Trie data structure to manage food distribution records for pets, allowing quick sum queries for different pet categories.
  • Key Concepts:
    • Trie Data Structure for fast searching
    • Inserting, Searching, and Deleting elements efficiently
    • Recursive Tree Traversal for data retrieval
    • Memory Management for dynamic Trie nodes

Author: Dylan McIntee
Course: CS1 - Spring 2024
University: University of Central Florida

About

A repository for all assignments from my Data Structures and Algorithms (DSA) course. Includes implementations in C, covering linked lists, stacks, queues, trees, sorting algorithms, and recursion.

Topics

Resources

Stars

Watchers

Forks

Languages