Splay tree và ứng dụng trong Data Compression

72 1.9K 6
Splay tree và ứng dụng trong Data Compression

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Splay tree và ứng dụng trong Data Compression

Đề tài: Splay tree và ứng dụng trong Data Compression 1 Giới thiệu về Splay Trees - Được các tác giả D.D.Sleator và R.E.Tarjan đưa ra năm 1983 2 - Có thể truy nhập nhanh chóng các nút vừa mới xét trước đó. - Chi phí khấu hao thấp. - Rõ ràng, dễ hiểu, dễ thực hiện với các thao tác cơ bản: tìm kiếm, xoá, chèn, … • Cây splay là cây nh phân tìm ki m, ị ế s d ng các phép quay ử ụ để quay nút đư cợ xét v g c.ề ố • Sắp xếp các nút vừa được xét, có tần suất sử dụng cao về gốc 3 Một ví dụ về splay trees với phép quay đặc trưng 4 Di chuyển nút được truy nhập x về gốc bởi phép quay x A y B C <===> y x B C A Hai phng phỏp quay - Bottom Up: Xuất phát từ nút đợc truy cập, ta quay nút này từ dới lên trên cho đến khi nó trở thành nút gốc. - Top Down: Xuất phát từ gốc của cây, ta quay nút này từ trên xuống dới đến khi đến nút đang đợc truy cập. 5 (Nu x l gc thỡ khụng phi lm gỡ) - Trên cây splay, các phép quay đợc định nghĩa bằng các quy tắc quay để quay dần nút đợc xét về gốc Phương pháp Bottom up 6 Các phép quay 7 - Cã 3 quy t¾c quay: phô thuéc vµo cÊu tróc cña ® êng dÉn truy cËp v lu«n ®¶m b¶o vÉn lµ BSTs:à D¹ng 1: Zig D¹ng 2: Zig-Zig D¹ng 3: Zig-Zag - Gi¶ sö x lµ nót ®îc truy cËp Dạng 1: ZIG Cha cña nót x lµ gèc cña c©y Th c hi n: Quay nót x quanh nót cha cña xự ệ 8 Quay x quanh y Dạng 2: ZIG - ZIG - Cha cña nót x kh«ng ph¶i lµ gèc, nót x vµ cha cña nót x ®Òu lµ con tr¸i (hoÆc con ph¶i) - Thùc hi n:ệ quay cha cña x quanh «ng cña x quay x quanh cha cña x 9 Quay y quanh z Quay x quanh y Dạng 3: ZIG - ZAG - Cha cña nót x kh«ng lµ gèc cña c©y, nót x lµ con tr¸i (ph¶i), cha cña nót x lµ con ph¶i (tr¸i) - Thùc hi n:ệ quay x quanh cha cña x quay x quanh «ng cña x 10 Quay x quanh y Quay x quanh z [...]... quay nút 43 quanh 50 40 50 60 20 70 16 65 63 66 25 Các phép toán trên Splay trees Catenate (T1,T2) Ni 2 cõy T1 v T2 c 1 cõy BST Tỡm nỳt i ln nht trong cõy T1 Quay i v lm gc T1 Ni T2 lm con phi ca nỳt gc i Lu ý: giỏ tr ca cỏc nỳt trong cõy T1 nh hn giỏ tr cỏc nỳt trong cõy T2 i T1 T2 i T2 T1 T1 T2 26 Các phép toán trên Splay tree Ví dụ nối 2 cây sau 10 60 8 25 5 75 55 65 29 29 23 Cây T2 Cây T1 29... 65 16 43 65 66 63 50 63 Cắt liên kết trái của nút 43 66 60 40 70 20 65 16 Cây T1 63 66 Cây T2 31 1 - Các phép toán trên Splay tree Insert (i,T) Chốn nỳt i vo cõy T Chốn nỳt vo nh trong BST Quay nỳt va c chốn v gc Nu ó cú i trong T thỡ quay nỳt ú v gc 32 2 Các phép toán trên Splay tree Insert (i,T) Chốn nỳt i vo cõy T - Thực hiện Split(i,T) ta được 2 cây con T1, T2 - Nối cây T1 thành con bên trái của... đường dẫn tim kiếm) Cắt bỏ liên kết trái và liên kết phải của nút i, ta được hai cây T1 và T2 Xóa nút i Catenate(T1, T2) i i Cắt liên kết trái và liên kết phải của nút i, xóa nút i Quay nút i T T1 T2 Catenate(T1, T2) T1 T2 T 35 Các phép toán trên Splay tree Ví dụ xóa nút 40 khỏi cây T 40 20 16 40 Quay nút 40 về gốc 50 43 16 70 65 25 63 Xóa nút 40 được 2 cây T1 và T2 Quay nút 25 của cây T1 60 43 25 70... Split(i,T) T T1 T2 Nối T2 thành con phải của i T1 T2 33 Các phép toán trên Splay tree Ví dụ chèn nút 42 vào cây T 43 40 50 Split(42,T) 50 20 60 40 60 Cây T1 16 20 43 70 70 42 65 65 16 40 63 43 63 66 Cây T2 66 50 20 Nối cây T1 thành con trái của 42 60 16 Nối cây T2 thành con phải của 42 70 65 63 66 34 Các phép toán trên Splay tree Delete (i,T) Xoỏ nỳt i khi cõy T Quay nút i về nút gốc của cây T (nếu...V D áp dụng các quy tắc để quay nút a trở thành nút gốc i h g f J I H e A d i h Cha của a là nút b, không phải là nút gốc, b và a đều là con phải, áp dụng quy tắc zig-zig G g f B D E F C H a A d F e b B c F G E D C J I f G b c E h g a B a i e d b C I H A c J Cha của a là nút d, không phải là nút gốc, d là con trái, còn a là con phải, áp dụng quy tắc zig-zag D 11 V D - tip áp dụng các quy tắc... T T1 i+ T1 Quay i + về gốc T2 Cắt liên kết trái của i + T1 T2 T1 T2 29 Các phép toán trên Splay tree Ví dụ tách cây T tại nút 60 Quay nút 60 (dạng zig) 60 50 40 20 50 60 43 40 70 65 20 65 16 43 63 50 Cắt liên kết trái của nút 60 60 40 20 16 66 16 66 63 70 70 43 Cây T1 65 63 66 Cây T230 Các phép toán trên Splay tree Ví dụ tách cây T tại nút 42 43 Quay nút 43 (42+) 50 50 40 (dạng zig-zag) 60 40 60 20... quay nút 18 trở thành nút gốc g -Za Zig Zig - Zig 19 Zig Re as em ble 21 Các phép toán trên Splay Tree 1 2 3 4 5 Find (i, T) - Tỡm kim node i trờn cõy T Catenate (T1,T2) Ni 2 cõy Split (i,T) Tỏch cõy T ti node i Insert (i,T) Chốn node i vo cõy T Delete (i,T) Xoỏ node i khi cõy T 22 Các phép toán trên Splay tree Find (i, T) - Tỡm kim nỳt i trờn cõy T - Tỡm kim nỳt i trờn T, nh BST - Nu tỡm thy, quay... A C Cha của a là nút f, không phải là nút gốc, f là con trái, còn a là con phải, áp dụng quy tắc zig-zag E J a I D f g e d A c C F b B E D H G Cha của a là nút h, không phải là nút gốc, a và h đều là con trái, áp dụng quy tắc zig-zig 12 Phương pháp Top - down Phương pháp Top - down - Có 4 quy tắc quay: phụ thuộc vào cấu trúc của đư ờng dẫn truy cập v luôn đảm bảo vẫn là BSTs: Dạng 1: Zig Dạng 2:... 10 8 5 90 60 75 55 23 65 90 27 Các phép toán trên Splay tree Split (i,T) Tỏch cõy T ti node i Trường hợp 1: i T Quay nút i về lm gốc của T Cắt liên kết trái hoặc liên kết phải của nút i => cây T được tách tại nút i thành 2 cây : T1, T2 i Cắt liên kết phải của i i Quay i về gốc T T1 T2 i T1 T2 Cắt liên kết trái của i T1 T2 28 Các phép toán trên Splay tree Split (i,T) Tỏch cõy T ti node i Trường hợp... Cha của nút Z không phải là gốc, nút Z và cha của nút Z cùng là con trái (hoặc con phải) Thực hiện: Quay cha của Z quanh ông của Z Quay Z quanh cha của Z 16 Dng 3: ZIG - ZAG Cha của nút Z không là gốc của cây, nút Z là con trái (phải), cha của nút Z là con phải (trái) Thực hiện: Quay cha của Z quanh ông của Z 17 Dng 4: Reassembling thc hin: sp xp li cõy 18 V D áp dụng các quy tắc để quay nút 18 trở thành . Đề tài: Splay tree và ứng dụng trong Data Compression 1 Giới thiệu về Splay Trees - Được các tác giả D.D.Sleator và R.E.Tarjan đưa ra năm 1983 2 - Có thể. … • Cây splay là cây nh phân tìm ki m, ị ế s d ng các phép quay ử ụ để quay nút đư cợ xét v g c.ề ố • Sắp xếp các nút vừa được xét, có tần suất sử dụng cao về gốc 3 Một ví dụ về splay trees với. trên xuống dới đến khi đến nút đang đợc truy cập. 5 (Nu x l gc thỡ khụng phi lm gỡ) - Trên cây splay, các phép quay đợc định nghĩa bằng các quy tắc quay để quay dần nút đợc xét về gốc Phương

Ngày đăng: 04/08/2015, 18:05

Mục lục

  • - c cỏc tỏc gi D.D.Sleator v R.E.Tarjan a ra nm 1983

  • Splay Trees - Cõy splay

  • Mt vớ d v splay trees vi phộp quay c trng

  • Hai phng phỏp quay

  • Phng phỏp Bottom up

  • Dng 2: ZIG - ZIG

  • Dng 3: ZIG - ZAG

  • V D - tip

  • Phương pháp Top - down

  • Các phép toán trên Splay Tree

  • Các phép toán trên Splay tree

  • Find (i, T) - Tỡm kim nỳt i trờn cõy T

  • Các phép toán trên Splay trees

  • Phõn tớch khu hao

  • Chi phớ khu hao cho 1 bc trong phộp quay c bn

  • Chi phớ khu hao cho phộp quay nỳt i v gc r trong phộp quay c bn

  • Chi phớ khu hao cho phộp quay nỳt i v gc trong cõy splay

  • Chi phớ khu hao cho phộp quay nỳt j v gc trong cõy splay

  • Bổ đề truy nhập

  • ịnh lý cân bằng

Tài liệu cùng người dùng

Tài liệu liên quan