CIS 3130 Data Structures
Basic Information and Requirements
Course Outline and Homework Assignments
- Introduction to Data Structures (What is this Book About? Abstract View of Data Structures. An ADT as a Class. Implementing C++ Classes. Declaring and Using Objects. Implementing a Class with Inline Code. Application Programming Interface(API). Strings.)
- H.W. - Chapter 1: 14, 21, 24, 33
- Object Design Techniques (Software Design. Handling Runtime Errors. Object Composition. Operator Overloading.)
- H.W. - Chapter 2: 12, 18, 20
- Introduction to Algorithms (Selection Sort. Simple Search Algorithms. Analysis of Algorithms. Analyzing the Search Algorithms. Making Algorithms Generic. The Concept of Recursion. Problem Solving with Recursion.)
- H.W. - Chapter 3: 15, 17, 28, 30, 42, 50.
- The Vector Container (Overview of STL Container Classes. Template Classes. The Vector Class. Vector Applications.)
- H.W. - Chapter 4: 6, 7, 9, 20, 27.
- Test-1
- Pointers and Dynamic Memory (C++ Pointers. Dynamic Memory. Classes Using Dynamic Memory. Assignment and Initialization. The Minivector Class. The Matrix Class.)
- H.W. - Chapter 5: 24, 30, 31, 35, 37, 38.
- The List Container and Iterators (The List Container. Iterators. General List Insert And Erase Operations. Case Study: Graduation Lists.)
- H.W. - Chapter 6: 15, 20, 25, 29, 32
- Stacks (The Stack ADT. Recursive Code and the Runtime Stack. Stack Implementation. Postfix Expressions. Case Study: Infix Expression Evaluation.)
- H.W. - Chapter 7: 15, 17, 18, 28, 31
- Extra credit H.W. - Charpter 10, question #43
- Queues and Priority Queues (The Queue ADT. The Radix Sort. Implementing the Miniqueue Class. Case Study: Time-Driven Simulation. Array Based Queue Implementation. Priority Queues.)
- H.W. - Chapter 8: 14, 18, 21, 25, 27
- Linked Lists (Linked List Nodes. Building Linked Lists. Handling The Back of the List. Implementing a Linked Queue. Doubly Linked Lists. Updating A Doubly Linked List. The Josephus Problem. The Minilist Class. Selecting a Sequence Container.)
- H.W. - Chapter 9: 17, 18, 28, 29.
- Binary Trees (Tree Structures. Binary Tree Nodes. Binary Tree Scan Algorithms. Using Tree Scan Algorithms. Binary Search Trees. Using Binary Search Trees. Implementing the Stree Class. The Stree Iterator (Optional).)
- H.W. - Chapter 10: 6, 23, 31, 35, 43.
- Test-3
- Associative Containers (Overview of Associative Containers. Sets. Maps. Multisets. Implementing Sets And Maps.)
- H.W. - Chapter 11: 15, 17, 23, 27.
- Advanced Associative Structures (Hashing. Designing Hash Functions. Designing Hash Tables. The Hash Class. Hash Table Performance. 2-3-4 Trees. Red-Black Trees. The Rbtree Class.)
- Inheritance and Abstract Classes (Inheritance in C++. The Graphics Hierarchy. The Graphics System. Safe Vectors. Ordered Lists. Polymorphism and Virtual Functions. Abstract Classes.)
- Heaps Binary Files and Bit Sets (Array Based Binary Trees. Heaps. Implementing a Priority Queue. Binary Files. Bitsets. Case Study: Huffman Compression.)
- Recursive Algorithms (Divide and Conquer Algorithms. Combinatorics. Dynamic Programming. Backtracking: The Eight-Queens Problem.)
- Graphs (Graph Terminology. The Graph Class. Graph Class Design. Graph Traversal Algorithms. Graph Traversal Applications. Graph Minimization Algorithms.)