https://github.com/srowhani/comp2402
Popular Algorithms and Data Structures in Java
https://github.com/srowhani/comp2402
Last synced: 11 months ago
JSON representation
Popular Algorithms and Data Structures in Java
- Host: GitHub
- URL: https://github.com/srowhani/comp2402
- Owner: srowhani
- Created: 2014-12-13T03:16:28.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-12-20T23:04:06.000Z (over 11 years ago)
- Last Synced: 2025-05-12T19:41:07.243Z (about 1 year ago)
- Language: Java
- Homepage:
- Size: 1.8 MB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
comp2402
========
Java Data Structures with Pat Morin.
Focus on the implementation of popular forms of storing data, the benefits to each, as well
as its space and time complexity.
-
Assignment 1
These questions involve choosing the right abstraction (Collection, Set, List, Queue, SortedSet, Map, or SortedMap) to efficiently accomplish the task at hand. The best way to do these is to read the question and then think about what type of Collection is best to use to solve it. There are only a few lines of code you need to write to solve each of them.
-
Assignment 2
Implement a RandomQueue, BulkArrayDeque, and improve the implementation
of how array deques calculate their indexing.
Ensure that the assignment runs inO(1+min{i,n-i})time
-
Assignment 3
In this assignment you will be working on two data structures that store a set of intervals. An interval has a left endpoint, a, and a right endpoint, b, with a <= b (as defined by Interval.compareTo()). Intervals are closed on the left and open on the right (they include their left endpoint but not their right endpoint).
-
Assignment 4
This assignment asks you to use binary tree traversals to make nice(ish) drawings of binary trees. To do this, you will implement some of the functions in the GeometricTree class.
Your implementation here should be fast and non-recursive. The test program will test your implementations of these functions on very large (e.g., 100k node) trees. All your implementations should run in linear time and should be able to label a 100k node tree in a tenth of a second or so. Your implementation should work even if the tree is extremely unbalanced.
-
Assignment 5
Implementation of an AVLTree. More Info about this data structure can be found here.