Assignments 12 (04/21) and 13 (04/23) are posted. Check Canvas
Exam 4 (Due 04/28, by 11.59 PM) is posted. Check Canvas
—————————————————–
Syllabus
TA Information
Amanuel Gebre: Mondays, Fridays: 10 AM to 3 PM; Wednesdays: 11 AM to 3 PM
Office: John A. Peoples Building, Room 218
E-mail: J00801049@students.jsums.edu
Lecture Slides
Module 1:Asymptotic Time Complexity and Intro to Abstract Data Types, C++ Code Review
Module 5 – Dictionary ADT: Hash tables
Lecture Code (C++)
Module 2: List ADT
Code 1: Static List Implementation using Arrays
Code 2: Dynamic List Implementation using Arrays
Code 3: Singly Linked List
Code 4: Recursion and Random Number Generation
Code 5: Reversing a Singly Linked List
Code 6: Run Time Complexity Analysis
Module 3: Stack ADT
Code 1: Dynamic Array based Stack
Code 2: Doubly Linked List based Stack
Code 3: Example to Illustrate String Processing in C++
Code 4: Using Stack to Check for Parenthesis Balance
Code 5: Example to Illustrate String Tokenizing in C++
Code 6: Evaluation of an Expression in PostFix Format using Stack
Module 4: Queue ADT
Code 1: Dynamic Array based Queue
Code 2: Doubly Linked List based Queue
Module 5: Dictionary ADT: Hashtable
Code 1: Singly Linked List-based Implementation of Hashtable
Code 2: Use of Hashtable to Determine whether two Integer Sequences are Permutations of each other
Code 3: Use of Hashtable to Print the Unique Elements in an Array
Module 6: Binary Trees
Code 1: To Read Text from a File
Code 2: Implementation of Binary Trees
Code 3: Use of Breadth First Search to Determine the Depth of the Nodes in a Binary Tree
Code 4: Preorder Traversal of a Binary Tree
Module 7: Binary Search Trees
Code 1: Construction of a Binary Search Tree (Input: Sorted Array of Integers)
Code 2: Selection Sort
Code 3: Construction of a Binary Search Tree (Input: Randomly Generated Array of Integers)
Code 4: Searching for a Key in a Binary Search Tree
Lecture Code (Java)
Module 2: List ADT
Code 1: Static List Implementation using Arrays
Code 2: Dynamic List Implementation using Arrays
Code 3: Singly Linked List
Code 4: Recursion and Random Number Generation
Code 5: Reversing a Singly Linked List
Module 3: Stack ADT
Code 1: Dynamic Array based Stack
Code 2: Doubly Linked List based Stack
Code 3: Example to Illustrate String Processing in Java
Code 4: Using Stack to Check for Parenthesis Balance
Code 5: Example to Illustrate String Tokenizing in Java
Code 6: Evaluation of an Expression in PostFix Format using Stack
Module 4: Queue ADT
Code 1: Dynamic Array based Queue
Code 2: Doubly Linked List based Queue
Module 5: Dictionary ADT: Hashtable
Code 1: Singly Linked List-based Implementation of Hashtable
Code 2: Use of Hashtable to Determine whether two Integer Sequences are Permutations of each other
Code 3: Use of Hashtable to Print the Unique Elements in an Array
Module 6: Binary Trees
Code 1: To Read Text from a File
Code 2: Implementation of Binary Trees
Code 3: Use of Breadth First Search to Determine the Depth of the Nodes in a Binary Tree
Code 4: Preorder Traversal of a Binary Tree
Module 7: Binary Search Trees
Code 1: Construction of a Binary Search Tree (Input: Sorted Array of Integers)
Code 2: Selection Sort
Code 3: Construction of a Binary Search Tree (Input: Randomly Generated Array of Integers)
Code 4: Searching for a Key in a Binary Search Tree
Assignments
Assignment 1 (Programming): Dynamic Array Implementation of the List ADT: Doubling the List Size vs. Incrementing the List Size by One: Memory and Run Time Analysis. Due on Feb. 6th, 11.59 PM
Check Canvas for the code
Assignment 2 (Programming): Design and Implementation of a Sorted List ADT. Due on Feb. 11th, 11.59 PM
Check Canvas for the code
Assignment 3 (Programming): Design and Implementation of a Θ(n) Algorithm to Delete all the Occurrences of an Element in a List ADT. Due on Feb. 13th, 11.59 PM
Check Canvas for the code
Assignment 4 (Programming): Maximum Depth of Nested Parentheses in an Expression. Due on Feb. 25th, 11.59 PM
Check Canvas for the code
Assignment 5 (Programming): Evaluation of an Expression in Prefix Format. Due on Feb. 27th, 11.59 PM
Check Canvas for the code
Assignment 6 (Programming): Implementation of the Queue ADT using a Stack Object and Performance Comparison of the EnqueueCostly and the DequeueCostly Approaches. Due on March 3rd, 11.59 PM
Check Canvas for the code
Assignment 7 (Programming): Using a Hashtable to Determine the Common Elements in all the Lists. Due on March 5th, 11.59 PM
Check Canvas for the code
Assignment 8 (Programming): Height-Balanced Binary Trees, Due on March 31st, 11.59 PM
Check Canvas for the code
Assignment 9 (Programming): Binary Tree: Design and Implementation of an Iterative Algorithm (using the Stack ADT) to do a Preorder Traversal of the Vertices, Due on April 2nd, 11.59 PM
Check Canvas for the code
Assignment 10 (Programming): Determining the Average Number of Comparisons for a Successful Search and an Unsuccessful Search in a Binary Search Tree based on its Structure Only, Due on April 7th, 11.59 PM
Check Canvas for the code
Assignment 11 (Programming): Setting the Data for the Nodes in a Binary Tree to Satisfy the Property of a Binary Search Tree without Changing the Structure of the Binary Tree, Due on April 9th, 11.59 PM
Check Canvas for the code
Assignment 12 (Programming): Checking whether a Binary Tree is a Max Heap, Due on April 21st, 11.59 PM
Check Canvas for the code
Assignment 13 (Programming): Performance Comparison of the Max heap vs. Min heap-based Heap Sort Algorithm to Sort an Array of Integers in the Increasing Order of the Values, Due on April 23rd, 11.59 PM
Check Canvas for the code
Exams
Exam 1 (Take Home). Due on Feb. 20th, 11.59 PM
Check Canvas for the code
Exam 2 (Take Home). Due on March 26th, 11.59 PM
Check Canvas for the code
Exam 3 (Take Home). Due on April 16th, 11.59 PM
Submit in Canvas
Exam 4 (Take Home). Due on April 28th, 11.59 PM
Submit in Canvas