Username
Password
Forgot your password?
Username:
Password
Confirm Password
Email:
MHC S26 COMSC 205: Data Structures
Table Of Contents
Contents
::
0.
1.
Course Resources
»
Lecture 0
Introduction and Hello World!
¶
0.1. Course Resources
0.2. Why Learn Java?
0.3. Let’s look at a Java Program
0.3.1. Compiling and Running
0.3.2. Java Keywords
Lecture 1
Intro to Java I: Data Types, Loops, and Conditionals
¶
1.1. Java Data Types
1.1.1. Primitives
1.1.2. Declaring Variables
1.1.3. String
1.2. Conditionals
1.2.1. Simple if
1.2.2. if else
1.2.3. elif
1.2.4. switch
1.2.5. Boolean Operators
1.3. Loops and Iteration
1.3.1. Definite Loop
1.3.2. Indefinite Loops
Lecture 2
Intro to Java II: Arrays and Input/Output
¶
2.1. Arrays and Scanner I/O
2.1.1. Imports
2.1.2. Input / Output / Scanner
2.1.3. Arrays
2.2. What Is Object-Oriented Programming?
2.2.1. OOP Metaphor: Interacting Objects
2.2.2. What is an Object?
2.2.3. Attributes and Values
2.2.4. Actions and Messages
2.2.5. What is a Class?
2.2.6. Variables and Methods
Lecture 3
Intro to Java III: Classes and Scope
¶
3.1. Defining Classes in Java
3.1.1. Writing a constructor
3.1.2. Methods
3.1.3. Static Methods
3.2. Variable Scoping
3.2.1. Variable Scoping
Lecture 4
Inheritance
¶
4.1. Introduction to Inheritance
4.1.1. Class Hierarchy and Inheritance
4.1.2. java.lang.Object toString()
4.1.3. Motivating Inheritance and Polymorphism
4.2. Java’s Inheritance Mechanism
4.2.1. Using an Inherited Method
4.2.2. Overriding an Inherited Method
4.2.3. Static Binding, Dynamic Binding and Polymorphism
4.2.4. Using the super Keyword to Refer to the Superclass
4.2.5. Inheritance and Constructors
Lecture 5
Abstract Classes and Interfaces
¶
5.1. Abstract Classes, Interfaces, and Polymorphism
5.1.1. Implementing an Abstract Method
5.1.2. Implementing a Java Interface
5.1.3. Interfaces or Abstract Classes
Lecture 6
Algorithm Analysis
¶
6.1. Motivating Studying Data Structures
6.1.1. Introduction
6.1.2. A Philosophy of Data Structures
6.1.3. Selecting a Data Structure
6.1.4. Real-World Example
6.2. Problems, Algorithms, and Programs
6.2.1. Introduction
6.2.2. Algorithms
6.2.3. Programs
6.2.4. Summary
6.3. Comparing Algorithms
6.3.1. Introduction
6.3.2. Basic Operations and Input Size
6.3.3. Growth Rates
6.4. Asymptotic Analysis and Upper Bounds
6.4.1. Introduction
6.4.2. Upper Bounds
6.4.3. Simplifying Rules
6.4.4. Check Your Understanding: Asymptotic Analysis
Lecture 7
The List Interface and Generics
¶
7.1. Java Generics
7.1.1. Primitives vs Object Wrappers
7.1.2. Java Generics
7.2. The List Interface
7.2.1. Introduction
7.2.2. Defining the Interface
7.2.3. Using a List
Lecture 8
ArrayLists
¶
8.1. ArrayList Implementation
8.1.1. How ArrayLists internally represent data
8.1.2. Instance variables and constructors
8.1.3. Adding elements to a given position: add(int index, E o)
8.1.4. Adding elements to end of list: add(E o)
8.1.5. Removing elements at a given position: remove(int position)
8.1.6. Full Implementation
Lecture 9
Linked Lists I
¶
9.1. References in Java
9.1.1. Pointers and References
9.1.2. Data Types in Java
9.1.3. Referencing and Dereferencing
9.1.4. The Employee Class
9.1.5. Reference Assignments
9.1.6. Sharing
9.1.7. Shallow and Deep Comparing: .equals() vs ==
9.1.8. Bad References
9.2. Linked Lists part I
9.2.1. Nodes
9.2.2. Linked List Partial Implementation
9.2.3. Linked List Instance Variables
9.2.4. addFirst() and addAfter()
9.2.5. Linked List Traversal and getNode()
9.2.6. Linked List add(int position, E element)
Lecture 10
Linked Lists II
¶
10.1. Linked Lists part II: remove helper methods
10.1.1. removeFirst()
10.1.2. removeAfter()
Lecture 11
Doubly Linked Lists and Stacks
¶
11.1. Doubly Linked Lists
11.1.1. Motivating Doubly Linked Lists
11.1.2. Node class implementation
11.1.3. addLast() implementation
11.1.4. addAfter() implementation
11.1.5. remove() a given node
11.1.6. Summarizing list operation efficiency
Lecture 12
Stacks and Review
¶
12.1. Stacks
12.1.1. Stack Terminology and Interface
12.1.2. ArrayList-Based Stack
12.1.3. LinkedList-Based Stack
12.1.4. Comparison of ArrayList-Based and LinkedList-Based Stacks
Lecture 13
Queues
¶
13.1. Queues
13.1.1. Queue Terminology and Interface
13.1.2. LinkedList Queue
13.1.3. Attempting an ArrayList Queue
13.1.4. Circular Array-Based Queue
13.1.5. Comparison of Circular Array and LinkedList Queue Implementations
Lecture 14
Recursion
¶
14.1. Recursion
14.1.1. Introduction
14.1.2. Writing Recursive Methods
14.1.3. Tracing Recursive Code
Lecture 15
Binary Search and Recursive Structures
¶
15.1. Searching in an Array
15.1.1. Linear Search
15.1.2. Binary Search
Lecture 16
Binary Trees
¶
16.1. Binary Trees
16.1.1. Introduction
16.1.2. Binary Tree Terminology
16.1.3. Binary Tree as a Recursive Data Structure
16.2. Binary Tree Implementation
16.2.1. Nodes in a Binary Tree
16.2.2. BinaryTree class
16.2.3. Recursively implementing height()
Lecture 17
Binary Search Trees I
¶
17.1. Binary Tree Traversals
17.1.1. Preorder Traversal
17.1.2. Postorder Traversal
17.1.3. Inorder Traversal
17.2. Binary Search Trees
17.2.1. Binary Search Tree Definition
17.2.2. BST insert()
Lecture 18
Binary Search Trees II
¶
18.1. Binary Search Trees Continued
18.1.1. BST contains()
18.1.2. BST remove()
18.1.3. BST operation costs
Lecture 19
Guest lecture: Heaps
¶
19.1. Heaps and Priority Queues
19.1.1. Priority Queues
19.1.2. Heap Properties
19.1.3. Heap insert()
19.1.4. Heap remove()
19.1.5. Heap priority queue operation costs
Lecture 20
Heaps and Sorting I
¶
20.1. Array Implementation for Complete Binary Trees
20.1.1. Array Implementation for Complete Binary Trees
Lecture 21
Sorting II
¶
21.1. Sorting
21.1.1. Insertion Sort
21.1.2. Selection Sort
21.1.3. Merge Sort
21.1.4. Runtime comparisons between sorting algorithms
Lecture 22
Maps and Hash Tables
¶
22.1. Maps
22.1.1. The Map Interface
22.1.2. Classes that Implement Map
22.1.3. Using a Map
22.2. Hash Tables
22.2.1. Hashing Introduction
22.2.2. Hash Table Implementation
22.2.3. MHCHashMap get()
22.2.4. MHCHashMap put()
22.2.5. MHCHashMap Complete Reference
Lecture 23
Hash Tables
¶
23.1. Handling Collisions
23.1.1. Chaining
23.1.2. MHCHashMap, with chaining
23.1.3. MHCHashMapChaining get()
23.1.4. Hash Table Operation Analysis
23.1.5. MHCHashMapChaining Complete Reference
License
Contents
::
0.
1.
Course Resources
»
Summary*:
Operating system*:
Windows
Mac OS
Linux
iOS
Android
Other
Browser*:
Chrome
Safari
Internet Explorer
Opera
Other
Description*:
Attach a screenshot (optional):