1 cs2303: systems programming concepts class 14 data structures: defining using implementing...
Post on 21-Dec-2015
215 views
TRANSCRIPT
![Page 1: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/1.jpg)
1
CS2303: Systems Programming Concepts
Class 14Data Structures:
DefiningUsing
ImplementingCopyright 2005-2008, Michael J. Ciaraldi
![Page 2: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/2.jpg)
2
Data Structures
You may have used some: Stack Queue Linked list Tree
We will learn how to make them.
![Page 3: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/3.jpg)
3
Data Structures
We will learn how to make them. Why? Not always available. Might have to implement. Better understanding.
Pick most appropriate.
Built-in not appropriate.E.g. kernel, time-critical.
![Page 4: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/4.jpg)
4
Defining and UsingData Structures
![Page 5: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/5.jpg)
5
StackGets it name from where?
And is it appropriate?Policy: LIFO
Where else is that used? Top
Operations: push() pop() peek() isEmpty()
![Page 6: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/6.jpg)
6
Conceptual Stack: push-down
One entry in stack
Push Push3 entries in stack
![Page 7: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/7.jpg)
7
Conceptual Stack: pop up
3 entries in stack
Pop PopPop causes empty stack
![Page 8: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/8.jpg)
8
Practical Stack
One entry in stack
Push Push Push
Sta
ck poin
ter
![Page 9: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/9.jpg)
9
Stack Options
Growth Up? Down?
Stack pointer points to: “Top” of stack? Next free cell?
Types of elements restricted/preserved?
![Page 10: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/10.jpg)
10
Stack Warnings
How to handle stack overflow?How to handle stack underflow?What is “handle”?
Detect Stack effect Return value Signal error condition
![Page 11: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/11.jpg)
11
Queue
Gets it name from where? And is it appropriate?
Policy: FIFO Where else is that used? Add at tail, remove at head.
Operations: enqueue() dequeue() peek() isEmpty()
![Page 12: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/12.jpg)
12
Conceptual Queue
One entry in queue
Enqueue Enqueue Enqueue
![Page 13: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/13.jpg)
13
Conceptual Queue
3 entries in queue
Dequeue DequeueDequeue causes
empty queue
![Page 14: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/14.jpg)
14
Practical Queue
Tail pointerHead pointer
![Page 15: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/15.jpg)
15
Queue Options
Fixed maximum size?Priority?Add/delete at both ends?
Deque = double-ended queue.Types of elements
restricted/preserved?
![Page 16: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/16.jpg)
16
Queue Warnings
How to handle wraparound?How to handle queue overflow?How to handle queue underflow?What is “handle”?
Detect Queue effect Return value Signal error condition
![Page 17: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/17.jpg)
17
Data StructureImplementation
![Page 18: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/18.jpg)
18
Implementation
Alternatives: Object-oriented Not
![Page 19: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/19.jpg)
19
Implementation
Object-oriented Each stack or queue is a separate
object. Fields: Stack data area, size, pointer. Methods: push(), pop(), etc.
![Page 20: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/20.jpg)
20
Implementation
Not Object-oriented Series of functions: create(), push(),
pop(), etc. Need identifier if more than one. Where to store specs? Risky, but done: just a stack pointer.
![Page 21: 1 CS2303: Systems Programming Concepts Class 14 Data Structures: Defining Using Implementing Copyright 2005-2008, Michael J. Ciaraldi](https://reader034.vdocuments.net/reader034/viewer/2022051619/56649d635503460f94a45685/html5/thumbnails/21.jpg)
21
Next Time
More data structures: Implementation, list, tree…