Top Banner
This is CS50
226

This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Aug 13, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

This is CS50

Page 2: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

*y = 13;

}

Page 3: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

*y = 13;

}

Page 4: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

*y = 13;

}

Page 5: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

*y = 13;

}

Page 6: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

*y = 13;

}

Page 7: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

*y = 13;

}

Page 8: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

*y = 13;

}

Page 9: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

}

Page 10: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

y = x;

*y = 13;

}

Page 11: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

y = x;

*y = 13;

}

Page 12: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

y = x;

*y = 13;

}

Page 13: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

int main(void)

{

int *x;

int *y;

x = malloc(sizeof(int));

*x = 42;

y = x;

*y = 13;

}

Page 15: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

arrays

Page 16: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 17: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3

Page 18: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3

Page 19: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3

Page 20: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

M M A \0 E M M A

\0 1 2 3 E M M A

\0 E M M A \0 E M

M A \0

Page 21: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3

Page 22: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3

1

Page 23: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3

1 2

Page 24: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3

1 2 3

Page 25: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3

Page 26: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3 4

Page 27: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n)

O(1)

Page 28: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n) search

O(1)

Page 29: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n) insert

O(log n) search

O(1)

Page 30: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

data structures

Page 31: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

struct

.

*

Page 32: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

struct

->

Page 33: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

linked lists

Page 34: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 35: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

10x123

Page 36: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

10x123

20x456

Page 37: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

10x123

20x456

30x789

Page 38: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

10x123

20x456

30x789

Page 39: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

10x123

0x456 20x456

30x789

Page 40: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

10x123

0x456 20x456

0x789 30x789

Page 41: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

10x123

0x456 20x456

0x789 30x789

0x0

Page 42: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

10x123

0x456 20x456

0x789 30x789

NULL

Page 43: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1

2

3

Page 44: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct

{

string name;

string number;

}

person;

Page 45: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct

{

}

person;

Page 46: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct

{

}

node;

Page 47: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct

{

}

node;

Page 48: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct

{

int number;

}

node;

Page 49: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct

{

int number;

node *next;

}

node;

Page 50: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct node

{

int number;

node *next;

}

node;

Page 51: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct node

{

int number;

struct node *next;

}

node;

Page 52: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

list

Page 53: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *list = NULL;

Page 54: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

list

Page 55: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

Page 56: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *n = malloc(sizeof(node));

Page 57: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *n = malloc(sizeof(node));

(*n).number = 2;

Page 58: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *n = malloc(sizeof(node));

n->number = 2;

Page 59: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *n = malloc(sizeof(node));

n->number = 2;

n->next = NULL;

Page 60: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *n = malloc(sizeof(node));

if (n != NULL)

{

n->number = 2;

n->next = NULL;

}

Page 61: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

Page 62: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

Page 63: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

list = n;

Page 64: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

Page 65: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

Page 66: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *n = malloc(sizeof(node));

if (n != NULL)

{

n->number = 4;

n->next = NULL;

}

Page 67: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

Page 68: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

Page 69: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *tmp = list;

Page 70: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *tmp = list;

while (tmp->next != NULL)

{

}

Page 71: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *tmp = list;

while (tmp->next != NULL)

{

tmp = tmp->next;

}

Page 72: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *tmp = list;

while (tmp->next != NULL)

{

tmp = tmp->next;

}

tmp->next = n;

Page 73: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

Page 74: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

Page 75: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *n = malloc(sizeof(node));

if (n != NULL)

{

n->number = 5;

n->next = NULL;

}

Page 76: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

Page 77: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

Page 78: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *tmp = list;

while (tmp->next != NULL)

{

tmp = tmp->next;

}

tmp->next = n;

Page 79: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

Page 80: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1

Page 81: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

node *n = malloc(sizeof(node));

if (n != NULL)

{

n->number = 1;

n->next = NULL;

}

Page 82: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1

Page 83: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1

Page 84: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1

Page 85: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1

Page 86: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1

Page 87: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1

Page 88: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

n->next = list;

list = n;

Page 89: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1

Page 90: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 91: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 92: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 93: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 94: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 95: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 96: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 97: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 98: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 99: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

2list

4

5

1 3

Page 100: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n)

O(1)

Page 101: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n) search

O(log n)

O(1)

Page 102: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n) search, insert

O(log n)

O(1)

Page 103: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

trees

Page 104: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

binary search trees

Page 105: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3 4 5 6 7

Page 106: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3 4 5 6 7

Page 107: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3 4 5 6 7

Page 108: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

1 2 3 4 5 6 7

Page 109: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

4

2 6

1 3 5 7

Page 110: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

4

2 6

1 3 5 7

Page 111: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct node

{

int number;

struct node *next;

}

node;

Page 112: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct node

{

int number;

}

node;

Page 113: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct node

{

int number;

}

node;

Page 114: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

typedef struct node

{

int number;

struct node *left;

struct node *right;

}

node;

Page 115: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

4

2 6

1 3 5 7

Page 116: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

bool search(node *tree)

{

}

Page 117: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

bool search(node *tree)

{

if (tree == NULL)

{

return false;

}

}

Page 118: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

bool search(node *tree)

{

if (tree == NULL)

{

return false;

}

else if (50 < tree->number)

{

return search(tree->left);

}

}

Page 119: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

bool search(node *tree)

{

if (tree == NULL)

{

return false;

}

else if (50 < tree->number)

{

return search(tree->left);

}

else if (50 > tree->number)

{

return search(tree->right);

}

}

Page 120: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

bool search(node *tree)

{

if (tree == NULL)

{

return false;

}

else if (50 < tree->number)

{

return search(tree->left);

}

else if (50 > tree->number)

{

return search(tree->right);

}

else if (50 == tree->number)

{

return true;

}

}

Page 121: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

bool search(node *tree)

{

if (tree == NULL)

{

return false;

}

else if (50 < tree->number)

{

return search(tree->left);

}

else if (50 > tree->number)

{

return search(tree->right);

}

else

{

return true;

}

}

Page 122: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n)

O(1)

Page 123: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n) search

O(1)

Page 124: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n) search, insert

O(1)

Page 125: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

hash tables

Page 126: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 127: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Page 128: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Page 129: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 130: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

Page 131: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

Zacharias

Page 132: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

Hermione

Zacharias

Page 133: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Zacharias

Page 134: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Page 135: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Page 136: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Page 137: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Page 138: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

Page 139: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Page 140: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Page 141: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Page 142: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Page 143: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Page 144: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Page 145: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Page 146: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Harry

Page 147: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Harry Hagrid

Page 148: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Harry Hagrid

Sirius

Page 149: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Harry Hagrid

SiriusRemus

Page 150: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Harry Hagrid

SiriusRemus

George

Page 151: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Harry Hagrid

SiriusRemus

George

Lily

Page 152: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Harry Hagrid

SiriusRemus

George

Lily Lucius

Page 153: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

input → → output

Page 154: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

hash function

Page 155: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus → → 0

Page 156: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Zacharias → → 25

Page 157: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Harry Hagrid

SiriusRemus

George

Lily Lucius Lavender

Page 158: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Hermione Harry Hagrid

Page 159: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Hermione Harry Hagrid

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Page 160: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

H

Page 161: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Page 162: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Hb

Page 163: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Hb

Hc

Page 164: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Hb

Hc

Hd

Page 165: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Hb

Hc

Hd

He

Page 166: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Hb

Hc

Hd

He

Hf

Page 167: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Hb

Hc

Hd

He

HfHermione

Page 168: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Hb

Hc

Hd

He

HfHermione

Harry

Page 169: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Hb

Hc

Hd

He

HfHermione

Harry Hagrid

Page 170: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Ha

Page 171: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Page 172: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Page 173: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Page 174: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Page 175: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Page 176: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Page 177: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Page 178: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Haq

Page 179: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Haq

Har

Page 180: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Haq

Har

Has

...

Page 181: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Haq

Har

Has

...

Heq

Page 182: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Haq

Har

Has

...

Heq

Her

Page 183: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Haq

Har

Has

...

Heq

Her

Hes

Page 184: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Haq

Har

Has

...

Heq

Her

HesHermione

Page 185: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Haq

Har

Has

...

Heq

Her

HesHermione

Harry

Page 186: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Haa

Hab

Hac

Had

Hae

Haf

Hag

...

Haq

Har

Has

...

Heq

Her

HesHermione

Harry

Hagrid

Page 187: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n)

O(1)

Page 188: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n)

O(1) search

Page 189: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n) search

O(log n)

O(1)

Page 190: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n) search, insert

O(log n)

O(1)

Page 191: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n) search

O(log n)

O(1) insert

Page 192: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

Albus

GinnyHermione

Ron

Zacharias

Fred

Severus

Petunia

Draco

James

Cedric

Luna

Neville

Kingsley

Minerva

Vernon

Harry Hagrid

SiriusRemus

George

Lily Lucius Lavender

Page 193: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

tries

Page 194: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 195: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 196: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 197: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 198: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 199: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 200: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 201: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 202: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 203: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 204: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 205: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 206: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 207: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 208: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 209: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 210: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n)

O(1)

Page 211: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(k) search

Page 212: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(k) search, insert

Page 213: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(1) search, insert

Page 214: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

O(n2)

O(n log n)

O(n)

O(log n)

O(1) search, insert

Page 215: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 216: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

abstract data structures

Page 217: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

queues

Page 218: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

enqueue

dequeue

Page 219: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

FIFO

Page 220: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

stacks

Page 221: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

push

pop

Page 222: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

LIFO

Page 223: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

dictionaries

Page 224: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}
Page 226: This is CS50node *tmp = list; while (tmp->next != NULL) {tmp = tmp->next;}

This is CS50