Computer Science 313 (Data Structures) Fall 2017
Handouts and programs from class will be added over
the course of the semester.
- Syllabus
-
The Midterm will be in class on Thursday 10-26-17.
- Solution to the Midterm
- Solution to the repeat Midterm
-
The final exam will be scheduled by Queens College:
-
Each chapter or unit of chapters will be followed by either a
homework assignment or an in class quiz or both.
- General instructions for homework submission.
- Planned class topics and links to code from class (subject to minor change):
- 08-29-17
Introduction: ADTs, Data structures, Java review. Chapters 1 and 2.
Complex Number Example Code
- 08-31-17
Java Review. Chapters 1 and 2.
Java Example Code
- 09-05-17
Quiz 1 (on reviewed topics from Chapters 1 and 2).
Nodes and lists of nodes. Chapter 3.
Node Code
- 09-07-17
Linked List data structures (singly and doubly linked).
Chapter 3.
Linked List Code
- Review questions on linked Lists
Solutions
- Homework X on Chapter 3, due Thursday 10-04-2017
- Homework X Solution
- 09-12-17
Review: O-analysis and recursion. Chapters 4 and 5.
Good use of Recursion Code
- 09-14-17
The Master theorem for O-analysis of recursion (additional to Chapter 5).
Bad use of Recursion Code
- Review questions on O notations and Master theorem
Solutions
- 09-19-17
Quiz 2 (on Chapters 4, 5 and the Master theorem).
The Stack ADT, Stack applications. Chapter 6.
Stack Code
- 09-26-17
Stack implementations. Chapter 6.
Stack Code
- 09-28-17
The Queue ADT, circular array implementation. Chapter 6.
Queue Code
- 10-03-17
The Iterator and Iterable interface in Java. Chapter 7.
Iterator Code
- Review questions on Stacks and Queues
Solutions
- 10-05-17
Quiz 3 (on Chapters 6 and 7).
Tree data structures. An abstract Tree class with some methods. Chapter 8.
General Tree Code
General Tree Gui, jar file
- 10-10-17
Binary Trees, linked implementation. Chapter 8.
Binary Tree Code
Binary Tree Gui, jar file
- Review questions on General and Binary Trees
Solutions
- Homework Y on Chapter 8, due Thursday 11-16-2017
- 10-12-17
General Tree implementation. Chapter 8.
General Tree Code
- 10-17-17
Tree traversals. Chapter 8.
- 10-19-17
Quiz 4 (on Chapter 8).
Catch up and Review
- 10-24-17
The priority queue ADT. Simple implementations.
Sorting using a priority queue: insertion sort, selection sort and heap sort.
Chapter 9.
Priority Queue Code
- 10-26-17
Midterm
- 10-31-17
Heap implementation of a priority queue. Chapter 9.
Priority Queue Code
Heap Gui, jar file
- Review questions on Heaps and Priority Queues
Solutions
- 11-02-17
Quiz 5 (on Chapter 9).
The Set and Map ADTs. Map as a Set adapter. Map application. Chapter 10.
Map and Set Code
Map Application Code
- Homework Z on Chapter 9, due Thursday 12-07-2017
- Homework Z Solution
- 11-07-17
Chained Hash tables. Chapter 10.
Chained Hash Table Code
- 11-09-17
Hash tables with open addressing. Chapter 10.
Open Addressing Hash Table Code
$emsp;
- Review questions on hashing
Solutions
- 11-14-17
The TreeSet and TreeMap data structures.
Binary search trees. Section 11.1.
Binary Search Tree Code
Binary Search Tree Gui, jar file
- 11-16-17
AVL trees. Sections 11.2, 11.3.
AVL Tree Code
AVL Tree Gui, jar file
- 11-28-17
AVL trees. Sections 11.2, 11.3.
AVL Tree Code
- Review questions on Search trees.
Solutions
- 11-30-17
Sorting. Chapter 12.
Sorting Code
- 12-05-17
Quiz 6 (on Chapter 11).
Graphs. Chapter 14.
Graph Code
- 12-07-17
Graphs. Chapter 14.
Graph Code
- 12-12-17
Quiz 7 (on Chapter 12).
Catch up and review.
- Review questions on Data Structures in general
Solutions