Student Course Outline for
CIS 246: Data Structures
Spring 2001
To download a file, right-click on the link and select 'Save Target
A
s...'
Week #1: 22-Jan-01
Topics
Review of C++ Fundamentals
Review of Arrays
Review of OOP Fundamentals
Discussion of Abstract Data Types
Resources
Creating a Simple Microsoft Visual C++ Project
Readings
Appendix A: Review of C++ Fundamentals
Homework
Abstract Data Type
ADTClass.cpp
Week #2: 29-Jan-01
Topics
Recursion: The Mirrors
Recursion as a Problem-Solving Technique
Resources
The triangle.java Program
The binarySearch.java Program
The towers.java Program
palindromes.txt
Readings
Chapter 2: Recursion: The Mirrors
Chapter 5: Recursion as a Problem-Solving Technique
Homework
WriteBackwards
Palindrome
Towers
writeBackward.cpp
palindrome1.cpp
towersOfHanoi.cpp
Week #3: 05-Feb-01
Topics
Algorithm Efficiency and Sorting (Simple)
Resources
The selectSort.java Program
The bubbleSort.java Program
The insertSort.java Program
The Queue.java Program
otherSorts.txt
Readings
Chapter 9: Algorithm Efficiency and Sorting (Simple)
Homework
Selection Sort
BubbleSort
InsertionSort
selectionSort.cpp
bubbleSort.cpp
insertionSort.cpp
Week #4: 12-Feb-01
Topics
Algorithm Efficiency and Sorting (Advanced)
Resources
The mergeSort.java Program
The quickSort1.java Program
The quickSort2.java Program
otherSorts.txt
radixSort.txt
Readings
Chapter 9: Algorithm Efficiency and Sorting (Advanced)
Homework
MergeSort
QuickSort
RadixSort
mergeSort.cpp
quickSort.cpp
radixSort.cpp
Week #5: 19-Feb-01
Topics
Exam 1: OOP, ADT's, Recursion, Sorting
Linked Lists
Resources
The LinkList.java Program
The PriorityQ.java Program
Readings
Chapter 4: Linked Lists
Homework
LinkedList
linkedList.cpp
Week #6: 26-Feb-01
Topics
Stacks
Resources
The Stack.java Program
The reverse.java Program
The brackets.java Program
The RBTree.java Program
algebra.txt
Readings
Chapter 6: Stacks
Homework
PostFix
postFix.cpp
Week #7: 05-Mar-01
Topics
Queues
Resources
palindromes.txt
Readings
Chapter 7: Queues
Homework
Palindrome (Stack)
palindrome2.cpp
Week #8: 12-Mar-01
Topics
Exam 2: Linked Lists, Stacks, Queues
Trees
Resources
The tree.java Program
algebra.txt
Readings
Chapter 10: Trees
Homework
Prefix Binary Tree
binaryTree.cpp
Week #9: 26-Mar-01
Topics
Tables and Priority Queues (Heaps)
Resources
The heap.java Program
Readings
Chapter 11: Tables and Priority Queues (Heaps)
Homework
Proirity Queue
heap.cpp
Week #10: 02-Apr-01
Topics
Advanced Implementation of Tables (2-3 & 2-3-4 Trees)
Resources
The tree234.java Program
numbers.txt
Readings
Chapter 12: Advanced Implementation of Tables (2-3 & 2-3-4 Trees)
Homework
2-3 Tree
tree234A.cpp
tree234N.cpp
Week #11: 09-Apr-01
Topics
Advanced Implementation of Tables (Red-Black Trees)
Resources
Readings
Chapter 12: Advanced Implementation of Tables (Red-Black Trees)
Homework
Week #12: 16-Apr-01
Topics
Advanced Implementation of Tables (Hashing)
Resources
The hash.java Program
names.txt
Readings
Chapter 12: Advanced Implementation of Tables (Hashing)
Homework
Hash Table
hash.cpp
Week #13: 23-Apr-01
Topics
Exam 3: Queues, Trees, Heaps, Hashing
Graphs (Implementing and Traversing)
Resources
The graphN.java Program
Exam 3 Answers
Readings
Chapter 13: Graphs (Implementing and Traversing)
Homework
Directed Graph
adjacency1.cpp
Week #14: 30-Apr-01
Topics
Graphs (Applications)
External Methods
Resources
The graphD.java Program
The mst.java Program
DirectedGraph.ppt
WeightedGraph.ppt
ExtraCredit.txt
Readings
Chapter 13: Graphs (Applications)
Chapter 14: External Methods
Homework
Weighted Directed Graph
adjacency2.cpp
Week #15: 07-May-01
Topics
Code Review
Resources
Readings
Homework
Phase I
Phase II
Week #16: 14-May-01
Topics
Exam 4: Graphs
Resources
Readings
Homework