Giter Club home page Giter Club logo

atcs's Introduction

Advanced Topics in Computer Science Honors (Data Structures and Algorithms)

My Java programs from the Advanced Topics in Computer Science Honors course at my high school. Note: This contains code from my course. This repository is not intended for cheating or copying code. This is simply for reference and for learning purposes. Any violation of academic integrity off this code is not intended and the creator of this repository is not to be blamed for. If you utilize this repository to blindly copy-paste code for repeated assignments, you are only cheating yourself out of learning.

Here are the highlights/assignments from each unit:

Unit 11: Heaps

  • Heaps are Trees, but unlike Binary Seach Trees, they are array-based ā€” with either the min or max value at the root.
  • Implemented min-heap (smallest value at the root)
  • Implemented max-heap (largest value at the root)

Unit 10: Trees

  • Notable projects include:
    • Implemented a Tree class from scratch with a custom-built TreeNode class
    • Wrote methods to add a Node to a BST, in order
    • Wrote methods to remove a Node from a binary tree
    • Wrote methods to find if a node/value is in a specific binary tree
    • Wrote methods to print binary tree in in-order, pre-order, post-order, and reverse-order
    • Wrote methds to find:
      • Tree width
      • Number of levels in a binary tree
      • Smallest value a binary tree
      • Largest value a binary tree
      • Number of leaves in a binary tree
      • Number of nodes in a binary tree
      • If the tree is or is not full and complete
    • Modeled Histograms with custom binary Trees and TreeNodes

Unit 9: HashMaps and HashSets

  • Notable projects include:
    • HashCodes
    • HashTables
    • Words
    • Wrestler and Wrestling Team
    • School Club Mapping
    • HashPhone
    • WareHouse (with ArrayList implementation as well)

Unit 8: Maps

  • Notable projects include:
    • Made a spanish-to-english dictionary mapping from a give .dat file
    • Modeled Histogram
    • Modeled Relatives
    • Modeled Acronyms
    • Modeled Autoparts
    • Modeled Students with a Student grade Map

Unit 7: Sets

  • Notable projects include:
    • Implemented a Set from scratch
    • Found Uniques and Dupes (Duplicates) with and without iterators
    • Modeled a Coin Collection
    • Implemented MathSet with union, intersection, symmetric diff and delta operators

Unit 6: Prioirity Queues

  • Notable projects include:
    • Writing toString(), getMin(), and getNaturalOrder() methods for PQ
    • Modeled Swimmers with a PQ
    • Modeled a Liver Transplant with a PQ
    • Circular Array with a PQ

Unit 5: Queues

  • Notable projects include:
    • Implemented a Queue from scratch
    • Implemented Circular Queue from scratch
    • Developed various methods to append, clone, reverse, and alternate, value in a Queue

Unit 4: Stacks

  • Notable projects include:
    • Utilized functions such as pop to demonstrate how a Stack works with the analogy of a pile of books
    • Reversed digits with a Stack
    • Reversed a String with a Stack
    • Modeled a single-lane driveway with a Stack
    • Created a Deck of Cards in a Stack and developed numerous shuffle methods
    • Made a program that evaluates algebraic expressions (in PEMDAS-order) with a Stack

Unit 3: LinkedLists

  • Notable projects include:
    • Implemented LinkedList from scratch with a provided ListNode class
    • Operated through LinkedLists with an iterator
    • Modeled fruits with LinkedLists
    • Modeled polynomials with LinkedLists
    • Modeled a restaurant with a singly LinkedList, implementing various methods
    • Create letter and letter counts to represent a histogram of data
    • Implemented Doubly LinkedLists from my own ListNode class

Unit 2: Sorts and Searching

  • Discussed and researched efficiency through Big-O notation and various algorithms and operations and each of their respective time complexities. Notable labs include: Quadratic Sort Lab*:
    • Create 3 graphs using data from using bubble sort on 1) an array in random order, 2) an array in descending order, and 3) an array in order.
    • Create 3 graphs using data from using insertion sort on 1) an array in random order, 2) an array in descending order, and 3) an array in order.
    • Create 3 graphs using data from using selection sort on 1) an array in random order, 2) an array in descending order, and 3) an array in order.
    • Create a chart and graph for a random array using 3 different sorts.
    • Create a chart and graph for an ordered array using 3 different sorts.
    • Create a chart and graph for an array in descending order for 3 different sorts.
    • Explain why these are called quadratic sorts. Use the O(nĀ²) notation in your response.
    • Which is the most efficient sort of a random array? Why? Which is the least efficient sort of a reverse ordered array? Why?
    • Which of these sort situations will produce a linear relationship O(n). Why?

* Received perfect score.

Unit 1: Recursion

  • Notable projects include:
    • Letter Pemutations
    • General Recursion Methods
    • Counting Letters in a Grid
    • Maze
    • Game of Chess

atcs's People

Contributors

rsha256 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    šŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. šŸ“ŠšŸ“ˆšŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ā¤ļø Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.