+ All Categories
Home > Documents > Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int...

Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int...

Date post: 20-Aug-2020
Category:
Upload: others
View: 7 times
Download: 0 times
Share this document with a friend
58
Week 5
Transcript
Page 1: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Week 5

Page 2: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

last time

Page 3: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 4: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

environment variables

stack

uninitialized data

initialized data

text

heap

Page 5: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

voidswap(inta,intb){inttmp=a;a=b;b=tmp;}

Page 6: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

voidswap(int*a,int*b){inttmp=*a;*a=*b;*b=tmp;}

Page 7: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 8: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

typedefstruct{stringname;stringdorm;}student;

Page 9: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

this time

Page 10: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 11: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 12: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

http://cs.calvin.edu/books/c++/ds/1e/

Page 13: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

typedefstructnode{intn;structnode*next;}node;

Page 14: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

delete

insert

search

...

Page 15: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 16: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

insert at tail

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 17: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

insert at head

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 18: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

insert in middle

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 19: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

insert in middle

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 20: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

insert in middle

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 21: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

remove tail

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 22: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

remove head

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 23: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

remove in middle

https://cs.calvin.edu/activities/books/c++/ds/1e/

Page 24: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

delete

insert

search

...

Page 25: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

boolsearch(intn,node*list){node*ptr=list;while(ptr!=NULL){if(ptr->n==n){returntrue;}ptr=ptr->next;}returnfalse;}

Page 26: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 27: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

push

pop

...

Page 28: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

typedefstruct{intnumbers[CAPACITY];intsize;}stack;

Page 29: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

typedefstruct{int*numbers;intsize;}stack;

Page 30: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 31: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

enqueue

dequeue

...

Page 32: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

typedefstruct{intfront;intnumbers[CAPACITY];intsize;}queue;

Page 33: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

typedefstruct{intfront;int*numbers;intsize;}queue;

Page 34: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 35: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

environment variables

stack

uninitialized data

initialized data

text

heap

Page 36: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Figure by Larry Nyhoff.

tree

Page 37: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

22 33 44 55 66 77 88

Page 38: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

22 33 44 55 66 77 88

Page 39: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Figure from http://cs.calvin.edu/books/c++/ds/1e/.

binary search tree

Page 40: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

typedefstructnode{intn;structnode*left;structnode*right;}node;

Page 41: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

boolsearch(intn,node*tree){if(tree==NULL){returnfalse;}elseif(n<tree->n){returnsearch(n,tree->left);}elseif(n>tree->n){returnsearch(n,tree->right);}else{returntrue;}}

Page 42: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

ASCII

A B C D E F G H I ...65 66 67 68 69 70 71 72 73 ...

Page 43: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Image adapted from Wikipedia.

morse code

Page 44: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 45: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 46: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Figure by Larry Nyhoff.

Page 47: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Figure by Larry Nyhoff.

Page 48: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Figure by Larry Nyhoff.

Page 49: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Figure by Larry Nyhoff.

Page 50: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Figure by Larry Nyhoff.

Page 51: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

A is 01

B is 0000

C is 0001

D is 001

E is 1

Page 52: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

typedefstructnode{charsymbol;floatfrequency;structnode*left;structnode*right;}node;

Page 53: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

... O(n) O(log n) O(1) …

Page 54: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 55: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;
Page 56: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Figure from Lewis and Denenberg’s Data Structures & Their Algorithms.

Page 57: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

typedefstructnode{boolword;structnode*children[27];}node;

Page 58: Week 5 - CS50cdn.cs50.net/2016/fall/lectures/5/week5.pdf · typedef struct { int front; int numbers[CAPACITY]; int size; } queue;

Week 5


Recommended