CS 341 Data Structures

(UNDER CONSTRUCTION) 

General Information

Syllabus

User Group

IEEE Meetings

INTRODUCTION TO COMPUTER SCIENCE by Robert Sedgewick and Kevin Wayne of Princeton University.  It's my favorite one-stop website that provides an excellent introduction to various CS subjects.  I highly recommend you check it out if you want to become a solid CS major.


Homework Assignments

  • Homework 1
  • Homework 2
  • Homework 3
  • Homework 4
  • Homework 5
  • Homework 6

  • Code

  • ADT Sphere example including equals() and compareTo()
  • ADT List with array-based implementation
  • ADT List with reference-based implementation
  • Project 1 Files
  • ADT Stack Files including the array-based, reference-based, and List-based implementations. (StackTest.java is modified in the way that the try-catch block, instead of the isFull() method, is used to safe-guard the push operations. With the change, isFull() in StackArrayBased.java is set to be private instead of public.)
  • ADT Queue Files including the array-based, reference-based, and List-based implementations.
  • Project 2 Files

  • Projects (Coming Soon!)

  • Project 1
  • Project 2
  • Project 3 (Test Cases)

  • Tentative Schedule and Lecture Notes


  • WEEK 1 to WEEK 4
       - Review of Java Fundamentals Reading: Chapter 1
       - Introduction Reading: Chapter 2 (Ignore loop invariant)
       - ADT and Java Interface Reading: Chapter 4
       - Linked Lists Reading: Chapter 5
       - Recursion Reading: Chapter 3  
       - Algorithm Efficiency Reading: Chapter 10 Section 1
  • WEEK 5 to WEEK 6
       - Stacks Reading: Chapter 7
       - Queues Reading: Chapter 8
       - Exam I (TBD)

  • WEEK 7
       - Algorithm Efficiency Revisit and Sorting Reading: Chapter 10 Sorting

  • WEEK 8 to WEEK 9
       - Trees Part A  Reading: Chapter 11 Trees and Binary Trees
       - Trees Part B  Reading: Chapter 11 Binary Search Trees
       - Tables Reading: Chapter 12 The ADT Table
  • WEEKS 10 to WEEK 12
       - Priority Queues and Heap Reading: Chapter 12 The ADT Priority Queue

       - 2-3 Trees and 2-3-4 Trees Reading: Chapter 13 2-3 Trees and 2-3-4 Trees
       - Balanced BSTs Reading: Chapter 13 Red-Black Trees and AVL Trees

       - Hash Tables Reading: Chapter 13 Hashing
       - Exam II (TBD)

  • WEEK 13 to WEEK 14
       - Graphs Reading Chapter 14

       - External Methods Reading Chapter 15 part 1
  • WEEK 15
       - B-Trees Reading Chapter 15 part 2
       - Introduction to JCF

    FINAL WEEK: Final Exam (TBD)