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.
- 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()
andstrcpy()
- 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
- Dynamic Arrays and Resizing with
- 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
- 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
- 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
- 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
- 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