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 102617.

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):
 082917
Introduction: ADTs, Data structures, Java review. Chapters 1 and 2.
Complex Number Example Code
 083117
Java Review. Chapters 1 and 2.
Java Example Code
 090517
Quiz 1 (on reviewed topics from Chapters 1 and 2).
Nodes and lists of nodes. Chapter 3.
Node Code
 090717
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 10042017
 Homework X Solution
 091217
Review: Oanalysis and recursion. Chapters 4 and 5.
Good use of Recursion Code
 091417
The Master theorem for Oanalysis of recursion (additional to Chapter 5).
Bad use of Recursion Code
 Review questions on O notations and Master theorem
Solutions
 091917
Quiz 2 (on Chapters 4, 5 and the Master theorem).
The Stack ADT, Stack applications. Chapter 6.
Stack Code
 092617
Stack implementations. Chapter 6.
Stack Code
 092817
The Queue ADT, circular array implementation. Chapter 6.
Queue Code
 100317
The Iterator and Iterable interface in Java. Chapter 7.
Iterator Code
 Review questions on Stacks and Queues
Solutions
 100517
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
 101017
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 11162017
 101217
General Tree implementation. Chapter 8.
General Tree Code
 101717
Tree traversals. Chapter 8.
 101917
Quiz 4 (on Chapter 8).
Catch up and Review
 102417
The priority queue ADT. Simple implementations.
Sorting using a priority queue: insertion sort, selection sort and heap sort.
Chapter 9.
Priority Queue Code
 102617
Midterm
 103117
Heap implementation of a priority queue. Chapter 9.
Priority Queue Code
Heap Gui, jar file
 Review questions on Heaps and Priority Queues
Solutions
 110217
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 12072017
 110717
Chained Hash tables. Chapter 10.
Chained Hash Table Code
 110917
Hash tables with open addressing. Chapter 10.
Open Addressing Hash Table Code
$emsp;
 Review questions on hashing
Solutions
 111417
The TreeSet and TreeMap data structures.
Binary search trees. Section 11.1.
Binary Search Tree Code
Binary Search Tree Gui, jar file
 111617
AVL trees. Sections 11.2, 11.3.
AVL Tree Code
AVL Tree Gui, jar file
 112817
AVL trees. Sections 11.2, 11.3.
AVL Tree Code
 Review questions on Search trees.
Solutions
 113017
Sorting. Chapter 12.
Sorting Code
 120517
Quiz 6 (on Chapter 12).
Graphs. Chapter 14.
Graph Code
 120717
Graphs. Chapter 14.
Graph Code
 121217
Quiz 7 (on Chapter 14).
Catch up and review.
 Review questions on Data Structures in general
Solutions