1 chapter 6 queues. 2 topics fifo (first0in-first0out) structure implementations: formula-based and...

Post on 08-Jan-2018

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

3 Queues

TRANSCRIPT

1

Chapter 6

Queues

2

Topics• FIFO (first0in-first0out) structure• Implementations: formula-based and linked

classes• Applications:

– railroad-switching problem– shortest path for a wire that is to connect two points– pixels labeling– machine shop simulation

3

Queues

4

Abstract data type

5

Queues 1• location(i) = i - 1• add - O(1)• delete - Θ(n) (need to slide items to front)

6

Queues 2• location(i) = location(1) + i - 1• add - worst-case Θ(n) (when buffer is full)• delete - O(1)

7

Shifting when rear=MaxSize-1 and front > 0

8

Queues 3• location(i) = (location(1) + i - 1) % MaxSize• add - Θ(1)• delete - Θ(1)

9

Empty and full queue

• Empty queue: front=rear

• full queue: can only hold up to MaxSize-1 elements

10

Formula-based class Queue

11

Constructor - Θ(1) when T is internal; O(MaxStackSize) when T is

user-defined

First - Θ(1)

12

Last - Θ(1)

13

Add and Delete - Θ(1)

14

Linked presentation

15

Addition

16

Deletion

17

Class definition

18

Destructor - Θ(n)

19

IsFull - Θ(1)

20

First and Last - Θ(1)

21

Add - Θ(1)

22

Delete - Θ(1)

23

Wire-Routing Problem• Need to route wires from A to B using the

shortest-path.• Routing region can be represented with a

grid: an nxm matrix of squares• wire runs midpoint of one square to midpoint

of another making only right-angles.• Grid squares that already have wires in them

are blocked.

24

Wire-Routing Problem

25

Wire-Routing Problem• Begin at source a• label its reachable neighbors with 1• next the reachable neighbors of distance 1

squares are labeled 2.• Continue labeling processing until either

reach destination b or have no more reachable neighbors.

• If b is reached, label it with its distance.

26

Wire-Routing ProblemTo construct shortest path, • Start from b and move to anyone of its

neighbors labeled 1 less than b's label.• From the neighbor found in previous step, move

to one of its neighbors whose label is 1 less• repeat until square a is reachedThe sequence of neighbors collected forms the

shortest path.

27

Wire-Routing Problem

28

29

30

Railroad Car Rearrangement

31

Rules

• Reserve Hk for moving cars directly from the input track to the output track

• Move car c to a holding track that contains only cars with a smaller label; if there are several such tracks, select one with largest label at its left end; otherwise, select an empty track (if one remains)

32

Output

33

Hold

34

Hold (continue)

35

Hold (continue)

36

Output without using queue

37

Output without using queue (continue)

38

Output without using queue (continue)

39

Railroad without using queue - O(nlogk)

40

Railroad without using queue (continue)

41

Railroad without using queue (continue)

42

Image-Component labeling

43

Offset

44

Wall of blank pixels (0)Note: change 1 to 0

45

Component labeling

46

Component labeling (continue)

47

Evaluation• Initialize the wall - Θ(m)• Initialize offsets - Θ(1)• identifying and labeling pixels of one

component - Θ(# of pixels in component)• identifying and labeling nonseed component -

Θ(# of pixels in component pixels in image) = O(m2)

• Overall complexity - O(m2)

48

End of Chapter 6

top related