Skip to content

A collection of Java programs demonstrating core programming concepts including algorithms, coding logic, built in and custom object types, and object oriented design.

Notifications You must be signed in to change notification settings

olivia-ruesc/Java_Algorithms_and_Data_Structuress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Java Algorithms and Data Structures

A collection of Java programs demonstrating core programming concepts including algorithms, coding logic, built-in and custom object types, and object-oriented design.

This repository was developed as part of my undergraduate coursework in Computer Science. The projects demonstrate my understanding of core data structures, algorithmic problem solving, and computational thinking through hands-on implementations.

Each folder focuses on a specific concept and includes short, well-documented programs that highlight design decisions, logic flow, and correctness.


Repository

Data_Structures/

This folder holds custom implementations and applications of fundamental data structures.

  • Binary Search Tree (BST)

    • This subfolder implements insertion, deletion, traversal, and frequency tracking skills.
    • It also includes a sentence-processing program that builds a BST from user input.
  • Circularly Linked List

    • This subfolder has generic circular singly linked list implementation.
    • The implementation is applied to simulate CPU round-robin process scheduling.
  • Hash Table

    • This program is a custom hash table with a defined hash function.
    • The hash function is designed to handle collisions using linear probing.
  • File Stack Simulation

    • This subfolder is two implementations of the same problem
      • one being Array-based and the other being Singly-Linked-list-based.
    • This demonstrates tradeoffs between data representations.
  • Custom Data Types

    • This subfolder shows object-oriented design using a Die class.
    • This also includes testing and probabilistic simulation of the Die object.

Algorithms/

These programs focuse on algorithmic logic and problem-solving techniques, including control flow, iteration, and decision-making strategies.

  • Max Priority

    • This progra is an array-based max heap implementation.
    • It demonstrates heap insertion, deletion, and re-heapification.
  • Post Fix

    • This program is a stack-based infix-to-postfix expression conversion.
    • This allows evaluation of postfix expressions using operator precedence.

Computational_Thinking/

This section is for procedural projects demonstrating coordinate systems, loops, and modular design.

  • Pavilion Scene
    • This program utilizes the StdDraw Library to produce a static drawing.
    • This shows use of procedural logic, coordinate-based reasoning, nested loops, and modular decomposition of tasks.

Technologies Used

  • Java
  • Object-Oriented Programming
  • Custom data structure implementations
  • Stack- and heap-based algorithms

Purpose of This Repository

This portfolio is intended to showcase:

  • My ability to implement data structures from scratch
  • Strong understanding of algorithmic logic
  • Clear, readable, and well-documented code
  • Experience translating theoretical concepts into working programs

These projects reflect both academic rigor and practical problem-solving skills relevant to software engineering and data science roles.


Author

Olivia Rueschhoff
M.S. in Mathematics | B.S. in Mathematics (Data Science & Statistics)
Minor: Computer Science (Algorithms & Data Structures)

About

A collection of Java programs demonstrating core programming concepts including algorithms, coding logic, built in and custom object types, and object oriented design.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages