{"id":20886104,"url":"https://github.com/srowhani/comp2402","last_synced_at":"2025-08-04T08:40:40.714Z","repository":{"id":24541189,"uuid":"27947742","full_name":"srowhani/comp2402","owner":"srowhani","description":"Popular Algorithms and Data Structures in Java","archived":false,"fork":false,"pushed_at":"2014-12-20T23:04:06.000Z","size":1891,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-12T19:41:07.243Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/srowhani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-13T03:16:28.000Z","updated_at":"2021-06-03T08:00:24.000Z","dependencies_parsed_at":"2022-08-23T00:31:40.891Z","dependency_job_id":null,"html_url":"https://github.com/srowhani/comp2402","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/srowhani/comp2402","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srowhani%2Fcomp2402","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srowhani%2Fcomp2402/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srowhani%2Fcomp2402/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srowhani%2Fcomp2402/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srowhani","download_url":"https://codeload.github.com/srowhani/comp2402/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srowhani%2Fcomp2402/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266682592,"owners_count":23967837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T08:15:47.415Z","updated_at":"2025-07-23T13:04:58.766Z","avatar_url":"https://github.com/srowhani.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"comp2402\n========\nJava Data Structures with Pat Morin.\n\nFocus on the implementation of popular forms of storing data, the benefits to each, as well \nas its space and time complexity.\n\n\u003cul\u003e\n  \u003cli\u003e\n    \u003ch2\u003eAssignment 1\u003c/h2\u003e\n    \u003csmall\u003eThese 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.\u003c/small\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003ch2\u003eAssignment 2\u003c/h2\u003e\n    \u003csmall\u003eImplement a RandomQueue, BulkArrayDeque, and improve the implementation\n    of how array deques calculate their indexing.\n    Ensure that the assignment runs in \u003ccode\u003eO(1+min{i,n-i})\u003c/code\u003e time\u003c/small\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003ch2\u003eAssignment 3\u003c/h2\u003e\n    \u003csmall\u003eIn 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 \u003c= 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).\u003c/small\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003ch2\u003eAssignment 4\u003c/h2\u003e\n    \u003csmall\u003eThis 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.\n    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.\u003c/small\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003ch2\u003eAssignment 5\u003c/h2\u003e\n    \u003csmall\u003eImplementation of an AVLTree. More Info about this data structure can be found \u003ca href='http://en.wikipedia.org/wiki/AVL_tree' target='_blank'\u003ehere\u003c/a\u003e.\u003c/small\u003e\n  \u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrowhani%2Fcomp2402","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrowhani%2Fcomp2402","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrowhani%2Fcomp2402/lists"}