Skip to content

Code challenges and data structures and algorithms for Codefellows 401 Java course

Notifications You must be signed in to change notification settings

wordhou/java-data-structures-and-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code challenges and data structures and algorithms for Codefellows 401 Java course.

Table of contents

Day by day summaries

Day 1: Reverse an Array

The challenge asked us to reverse an array. It gave us the option to either reverse the array in place or create a new reversed array. We came up with solutions to both.

Summary for the first code challenge.

Day 2: Arrays, loops, and unit testing

Code challenge two asks us to insert an element into the middle of an array. Summary of our second code challenge.

Day 3: Binary search

The third code challenge asks us to implement the classic binary search algorithm on a sorted list of int s. Details on the third code challenge.

Day 5: Linked List

We implement a basic linked list class with just a few instance methods. This class will get fleshed out more later. Details on the linked list class.

Day 6: Insertion and Deletion in LinkedLists

We build on the linked list class from day 5 and add insertion and deletion to the API.

Day 7: Indexing from beginning and end in LinkedList

We continue building on the linked list class and implement a way to access elements by index.

Day 10: Stacks and Queues implementations

We defined the interface for a stack and a queue and implement both classes using linked lists. Details on the stacks and queues labs.

Day 11: Implementing a Queue with Two Stacks

Our challenge was to implement a Queue using two Stacks.

Day 12: Implementing a Specialized Queue

Our challenge is to implement a queue that accepts elements of different types, allowing us to dequeue the item of a specific type that's been in the queue the longest, and allowing us to dequeue the item of any time that's been in the queue for the longest.

Day 14: Matching brackets with a stack

We use a stack to implement a solution to the matching brackets problem, where we validate whether or not the brackets in a string are matching and balanced.

Day 15: Implementing a binary tree and binary search tree

In this series of challenges we're asked to implement various implementations of and algorithms on binary trees. We define a class of binary trees and implement several methods to traverse over the binary tree. Then we extend this class to create a binary search tree, adding insertion and search methods.

Day 16: Finding the maximum of a binary tree

In this challenge we're asked to write a method on a binary tree that finds the maximum value in that tree.

Day 17: Implementing the breadth first search

In this challenge we're asked to implement a breadth first search on a binary tree.

Day 18: Rose trees (k-ary trees) and fizz buzz

In this challenge we implement a k-ary tree and then create a new tree based on that original tree according to the "fizz buzz" rules.

Day 26: Insertion sort

In this next week of challenges we are investigating various sorting algorithms. Today's challenge is the basic insertion sort algorithm.

Day 27: Merge sort

Today's challenge implements the merge sort algorithm.

Day 28: Quick sort

Today's challenge implements the quick sort algorithm.

Day 30: Hash Tables

We define a Map interface and implement a HashTable with separate chaining (linked list) in this challenge

Day 31: Counting word frequency

We define a class that determines word frequency on a String in this challenge.

Day 35: Graph implementations

We implement a variety of graph data structures and investigate their properties.

Day 36: Graph traversals

We implement a number of ways to traverse a graph in this challenge.

Day 37: Paths and shortest paths

We implement a method that takes a sequence of nodes and determines whether the nodes form a path in the given graph. We also implement Dijkstra's algorithm for finding the shortest path in this challenge data structures and investigate their properties.

About

Code challenges and data structures and algorithms for Codefellows 401 Java course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages