# CS61B Fall 2022

## CS 61B: Data Structures

Official course site: <https://fa22.datastructur.es/index.html>

My GitHub repo including all the solutions: <https://github.com/tomthestrom/cs61b>

## About

I decided to take this course in order to learn about some basic data structures and algorithms.&#x20;

The first third of the course deals with introducing Java while going through List Abstract Data Type - SLL, DLL, AL and implementing unit tests (timing and randomized). While not being a Java class, Java is explained to the extent that's needed to be able to successfully complete the assignments.

The class as a whole is not that programming heavy in my opinion (except for Project 3), but you get to implement and practice what's being explained during the lectures.

## Quick Intro to Assignments (aka, some highlights):

* Implementing various types of Lists - notably a [Deque in Project 1](/cs61b-fall-2022/project-1-deques.md) - the basic ADT for a GuitarHero Simulator:
  * The **Deque** was implemented in 2 ways.

    * using a[ **Doubly Linked List**](/cs61b-fall-2022/project-1-deques.md#1-linked-list-deque) with a **sentinel node**
    * using a [**circular array**](/cs61b-fall-2022/project-1-deques.md#2-array-deque) **- the first mindblowing experience :)**

* **Disjoined Sets** - implementing a [Percolation Simulator in Homework 2](/cs61b-fall-2022/hw-2-percolation.md).

* **Trees** - concept used in multiple places - [Implemented a  BSTMap in Lab 07.](/cs61b-fall-2022/lab-07-bstmap.md)

* **HashMaps** - one of the most used datastructures - [implemented in Lab 08](/cs61b-fall-2022/lab-08-hashmap.md).

* **Graphs -** [implementing a Graph](/cs61b-fall-2022/project-2b-ngordnet-wordnet.md#implementation) as an underlying data structure for[ WordNet ](https://en.wikipedia.org/wiki/WordNet)in [Project 2b](/cs61b-fall-2022/project-2b-ngordnet-wordnet.md)**.**

* A Game Generator in [Project 3 ](/cs61b-fall-2022/project-3-byow.md)- implemented however you'd like.
  * [Phase 1: Implement a Pseudorandom dungeon generator](/cs61b-fall-2022/project-3-byow/phase-1-world-generation.md).
  * Phase 2: Add Interactivity - not implemented yet.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tomthestrom.gitbook.io/cs61b-fall-2022/cs61b-fall-2022.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
