Lab: Data Structures

Lab to review different kinds of datastructures.
hash table explanation and solution

Explain hashtables and implemented a simple hashtable with chaining for
collision resolution.
explain binary search trees
begin section on graphs
begin section on graph data structures
begin section of DFS and BFS

Discuss depth first search and breadth first search
explain DFS and BFS using two examples
solutions for graph search problems
remove section on balanced binary trees

Removed because I think will go over the time constraints of a lab.
solution for binary tree
clarify some sentences and fix spacing
Added a more thorough description of Kruskal's algorithm.
Some revision in the description of Kruskal's algorithm.
fixed syntax errors and clarify some grammar
more syntax fixes

Apparently, when I edited this lab earlier I probably did an unfortunate
replace all.
Rewrote description of Prim's Algorithm.
Updated solutions to MST and ImageSegMST labs.
reorganized introduction

changed the introduction to focus more on cython being an automation of
writing a C-extension for Python.
edits to typed declarations section of lab

Reword and reorder some of the content for clarity.
center figures