Skip to content

Files

Latest commit

 

History

History
69 lines (57 loc) · 3.24 KB

README.md

File metadata and controls

69 lines (57 loc) · 3.24 KB

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