44
PFDS 11.2 Catenable Double-Ended Queues ~ using implicit recursive slowdown ~ @rf0444

PFDS 11.2.2

  • Upload
    rf0444

  • View
    300

  • Download
    2

Embed Size (px)

Citation preview

Page 1: PFDS 11.2.2

PFDS 11.2Catenable Double-Ended

Queues~ using implicit recursive slowdown ~

@rf0444

Page 2: PFDS 11.2.2

Simple Implementationdata Cat a = Shallow (Deq a) | Deep (Deq a) (Cat (Deq a)) (Deq a)

Page 3: PFDS 11.2.2

Simple Implementation

++

Page 4: PFDS 11.2.2

Simple Implementation

snoc

cons

Page 5: PFDS 11.2.2

Simple Implementation

Page 6: PFDS 11.2.2

Simple Implementation

++( )

Page 7: PFDS 11.2.2

Simple Implementation

++( )

再帰 O(min(log n1, log n2))

Page 8: PFDS 11.2.2

using compound elementsdata Cat a = Shallow (Deq a) | Deep (Deq a) (Cat (Ele a)) (Deq a) (Cat (Ele a)) (Deq a)

Page 9: PFDS 11.2.2

using compound elementsdata Ele a = Simple (Deq a) | Compound (Deq a) (Cat (Ele a)) (Deq a)

Page 10: PFDS 11.2.2

using compound elements

++

Page 11: PFDS 11.2.2

using compound elements

Page 12: PFDS 11.2.2

using compound elements

Page 13: PFDS 11.2.2

using compound elements

snoc cons

Page 14: PFDS 11.2.2

using compound elements

Page 15: PFDS 11.2.2

using compound elements

Page 16: PFDS 11.2.2

using compound elementstail

1. f が 4 要素以上

2.a の先頭が Simple

3.a の先頭が Compound

4.a が空、b の先頭が Simple

5.a が空、b の先頭が Compound

6.a も b も空

f a m b r

Page 17: PFDS 11.2.2

using compound elementstail (1)

Page 18: PFDS 11.2.2

using compound elementstail (1)

Page 19: PFDS 11.2.2

using compound elementstail (2)

Page 20: PFDS 11.2.2

using compound elementstail (2)

Page 21: PFDS 11.2.2

using compound elementstail (2)

Page 22: PFDS 11.2.2

using compound elementstail (3)

Page 23: PFDS 11.2.2

using compound elementstail (3)

Page 24: PFDS 11.2.2

using compound elementstail (3)

Page 25: PFDS 11.2.2

using compound elementstail (3)

Page 26: PFDS 11.2.2

using compound elementstail (3)

++

Page 27: PFDS 11.2.2

using compound elementstail (3)

Page 28: PFDS 11.2.2

using compound elementstail (3)

Page 29: PFDS 11.2.2

using compound elementstail (4)

Page 30: PFDS 11.2.2

using compound elementstail (4)

Page 31: PFDS 11.2.2

using compound elementstail (4)

Page 32: PFDS 11.2.2

using compound elementstail (4)

Page 33: PFDS 11.2.2

using compound elementstail (4)

Page 34: PFDS 11.2.2

using compound elementstail (5)

Page 35: PFDS 11.2.2

using compound elementstail (5)

Page 36: PFDS 11.2.2

using compound elementstail (5)

Page 37: PFDS 11.2.2

using compound elementstail (5)

Page 38: PFDS 11.2.2

using compound elementstail (5)

Page 39: PFDS 11.2.2

using compound elementstail (5)

Page 40: PFDS 11.2.2

using compound elementstail (6)

空 空

Page 41: PFDS 11.2.2

using compound elementstail (6)

空 空

Page 42: PFDS 11.2.2

using compound elementstail (6)

*どちらかのサイズが 3 以下なら、くっつけて Shallow

Page 43: PFDS 11.2.2

using compound elementstail (6)

Page 44: PFDS 11.2.2

using compound elementstail (6)

空 空