92
Lecture 2 Basic Data Structures and Recursion Review

Lecture 2 Basic Data Structures and Recursion Review

Embed Size (px)

DESCRIPTION

Participation 1 Blue Eyes Problem Due Thursday

Citation preview

Page 1: Lecture 2 Basic Data Structures and Recursion Review

Lecture 2

Basic Data Structuresand Recursion Review

Page 2: Lecture 2 Basic Data Structures and Recursion Review

Online Students

• Tell me what your plan is – in-class exam– proctoring

Page 3: Lecture 2 Basic Data Structures and Recursion Review

Participation 1

• Blue Eyes Problem

• Due Thursday

Page 4: Lecture 2 Basic Data Structures and Recursion Review

Abstract Data Type

• Motivation– Grouping– Abstraction

• Definition

Page 5: Lecture 2 Basic Data Structures and Recursion Review

List

• Operations

Page 6: Lecture 2 Basic Data Structures and Recursion Review

List: array

• Characteristics

• Index calculation (constant)

Page 7: Lecture 2 Basic Data Structures and Recursion Review

List: array

• 1D array index calculation (constant)

Page 8: Lecture 2 Basic Data Structures and Recursion Review

List: array (cont’d)

• 2D array (RMO)

Page 9: Lecture 2 Basic Data Structures and Recursion Review

List: array (cont’d)

• 2D array (CMO)

Page 10: Lecture 2 Basic Data Structures and Recursion Review

List: array (cont’d)

• 3D array

Page 11: Lecture 2 Basic Data Structures and Recursion Review

List: array

Page 12: Lecture 2 Basic Data Structures and Recursion Review

List: array

• Resizing: what’s the cost?• Increase capacity by 1

• Increase capacity by 100%

Page 13: Lecture 2 Basic Data Structures and Recursion Review

List: linked list

• Characteristics

Page 14: Lecture 2 Basic Data Structures and Recursion Review
Page 15: Lecture 2 Basic Data Structures and Recursion Review

List: doubly-linked list

• Characteristics

Page 16: Lecture 2 Basic Data Structures and Recursion Review

List: doubly-linked list

Page 17: Lecture 2 Basic Data Structures and Recursion Review

List: Circular linked list

• Characteristics

Page 18: Lecture 2 Basic Data Structures and Recursion Review

List: Circular linked list

Page 19: Lecture 2 Basic Data Structures and Recursion Review

List: Multi-List

• Characteristics

Page 20: Lecture 2 Basic Data Structures and Recursion Review

List: Multi-List

Page 21: Lecture 2 Basic Data Structures and Recursion Review

Stacks

• Operations

Page 22: Lecture 2 Basic Data Structures and Recursion Review

Stacks: arrays

• Push()

Page 23: Lecture 2 Basic Data Structures and Recursion Review

Stacks: arrays

• Pop()

Page 24: Lecture 2 Basic Data Structures and Recursion Review

Stacks: arrays

Page 25: Lecture 2 Basic Data Structures and Recursion Review

Stacks: linked lists

• Push()

Page 26: Lecture 2 Basic Data Structures and Recursion Review

Stacks: linked lists

• Pop()

Page 27: Lecture 2 Basic Data Structures and Recursion Review

Queues

• Characteristics

Page 28: Lecture 2 Basic Data Structures and Recursion Review

Queues: linked list

• enqueue

Page 29: Lecture 2 Basic Data Structures and Recursion Review

Queues: linked list

• dequeue

Page 30: Lecture 2 Basic Data Structures and Recursion Review

Queues: array

• enqueue

Page 31: Lecture 2 Basic Data Structures and Recursion Review

Queue: array

• dequeue

Page 32: Lecture 2 Basic Data Structures and Recursion Review

Dictionary

• Characteristics

Page 33: Lecture 2 Basic Data Structures and Recursion Review

Dictionary: implementations

• Hash Table

• B+ Trees

Page 34: Lecture 2 Basic Data Structures and Recursion Review

Other data structures

• Trees

• Graphs

Page 35: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

• Definition

Page 36: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

• Example: factorial

Page 37: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

Page 38: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

• Any recursive function can be rewritten as a loop.

Page 39: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

• Recursion vs loops

Page 40: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review• Reverse Linked List (iterative)

Page 41: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review• Reverse Linked List (recursive)

Page 42: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review• Reverse Linked List (recursive)

Page 43: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

Page 44: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review: Towers of Hanoi

image from wikipedia

Page 45: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review: Towers of Hanoi

image from mathworld.wolfram.com

Page 46: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review• Solving Towers of Hanoi Recursively

Page 47: Lecture 2 Basic Data Structures and Recursion Review

Lecture 2

Basic Data Structuresand Recursion Review

Page 48: Lecture 2 Basic Data Structures and Recursion Review

Online Students

• Tell me what your plan is – in-class exam– proctoring

Page 49: Lecture 2 Basic Data Structures and Recursion Review

Participation 1

• Blue Eyes Problem

• Due Thursday

Page 50: Lecture 2 Basic Data Structures and Recursion Review

Abstract Data Type

• Motivation– Grouping– Abstraction

• Definition

Page 51: Lecture 2 Basic Data Structures and Recursion Review

List

• Operations

Page 52: Lecture 2 Basic Data Structures and Recursion Review

List: array

• Characteristics

• Index calculation (constant)

Page 53: Lecture 2 Basic Data Structures and Recursion Review

List: array

• 1D array index calculation (constant)

Page 54: Lecture 2 Basic Data Structures and Recursion Review

List: array (cont’d)

• 2D array (RMO)

Page 55: Lecture 2 Basic Data Structures and Recursion Review

List: array (cont’d)

• 2D array (CMO)

Page 56: Lecture 2 Basic Data Structures and Recursion Review

List: array (cont’d)

• 3D array

Page 57: Lecture 2 Basic Data Structures and Recursion Review

List: array

Page 58: Lecture 2 Basic Data Structures and Recursion Review

List: array

• Resizing: what’s the cost?• Increase capacity by 1

• Increase capacity by 100%

Page 59: Lecture 2 Basic Data Structures and Recursion Review

List: linked list

• Characteristics

Page 60: Lecture 2 Basic Data Structures and Recursion Review
Page 61: Lecture 2 Basic Data Structures and Recursion Review

List: doubly-linked list

• Characteristics

Page 62: Lecture 2 Basic Data Structures and Recursion Review

List: doubly-linked list

Page 63: Lecture 2 Basic Data Structures and Recursion Review

List: Circular linked list

• Characteristics

Page 64: Lecture 2 Basic Data Structures and Recursion Review

List: Circular linked list

Page 65: Lecture 2 Basic Data Structures and Recursion Review

List: Multi-List

• Characteristics

Page 66: Lecture 2 Basic Data Structures and Recursion Review

List: Multi-List

Page 67: Lecture 2 Basic Data Structures and Recursion Review

Stacks

• Operations

Page 68: Lecture 2 Basic Data Structures and Recursion Review

Stacks: arrays

• Push()

Page 69: Lecture 2 Basic Data Structures and Recursion Review

Stacks: arrays

• Pop()

Page 70: Lecture 2 Basic Data Structures and Recursion Review

Stacks: arrays

Page 71: Lecture 2 Basic Data Structures and Recursion Review

Stacks: linked lists

• Push()

Page 72: Lecture 2 Basic Data Structures and Recursion Review

Stacks: linked lists

• Pop()

Page 73: Lecture 2 Basic Data Structures and Recursion Review

Queues

• Characteristics

Page 74: Lecture 2 Basic Data Structures and Recursion Review

Queues: linked list

• enqueue

Page 75: Lecture 2 Basic Data Structures and Recursion Review

Queues: linked list

• dequeue

Page 76: Lecture 2 Basic Data Structures and Recursion Review

Queues: array

• enqueue

Page 77: Lecture 2 Basic Data Structures and Recursion Review

Queue: array

• dequeue

Page 78: Lecture 2 Basic Data Structures and Recursion Review

Dictionary

• Characteristics

Page 79: Lecture 2 Basic Data Structures and Recursion Review

Dictionary: implementations

• Hash Table

• B+ Trees

Page 80: Lecture 2 Basic Data Structures and Recursion Review

Other data structures

• Trees

• Graphs

Page 81: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

• Definition

Page 82: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

• Example: factorial

Page 83: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

Page 84: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

• Any recursive function can be rewritten as a loop.

Page 85: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

• Recursion vs loops

Page 86: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review• Reverse Linked List (iterative)

Page 87: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review• Reverse Linked List (recursive)

Page 88: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review• Reverse Linked List (recursive)

Page 89: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review

Page 90: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review: Towers of Hanoi

image from wikipedia

Page 91: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review: Towers of Hanoi

image from mathworld.wolfram.com

Page 92: Lecture 2 Basic Data Structures and Recursion Review

Recursion Review• Solving Towers of Hanoi Recursively