Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
1,31 MB
Nội dung
Ths Tô Văn Nam N n Mssv: n 20070095 n ôn n V n ôn n T n ôn n n ôn a N Page I n II n n n an A n n n I T n an Các khái ni m Cây nhị phân II T n an an ản v n 12 ịn n ĩa danh sách 12 Danh sách liên k t mảng liên t c 14 B I n a 17 n n 18 n 18 năn 18 năn 18 II n a n 18 a ô n a a ô n III C n 18 20 21 m n ản 21 m n 21 m n 22 T n 23 I n 23 T n n a a n a Nhân a n an n tsort 23 23 23 24 24 Page T Tn II D E T ị a III IV 25 n 27 n n n n n 27 n n 30 n 31 n 31 am ả 66 Page I N i dung: Giả s bi u th c toán h b i T, nút có cấu trúc : ợc bi u di n b i bi u th c, có g c tr struct Nut { Kieu : Byte {phân lo i nút } N *L TR, *R TR /*G ịa ch g c g c phải */ struct trái } Ý n ĩa ng gi n n gi li u giải thu “ Yêu c u : Vi n mô ả n n 6, u ‘’ Cấu trúc n n ực hi n yêu c u sau : Nh n bi t thành ph n tham gia vào bi u th c: Bi n, hằng, dấu phép tốn lo i T o bi u th c bi u di n m t bi u th L p bảng SYM-V LUE c vào giá trị bi n có bi u th c , chuy n xâu ký tự bi u di n có bi u th c ú ợt thực t p sinh viên phải: K N m ợc ph n giải thu t lý thuy t giáo trình Cấu trúc gi li u N m ợc kỹ thu t l p trình , s d ng thành th o ngôn ng l p n c T ợt tác phong làm vi c t p th giải quy t m t vấn Sa ợt thực t p, sinh viên phải làm báo cáo thực t p có n i dung: II N i dung bi u di n a c danh sách n tính , s h ng ợ nh a struct SoHang { int somu; /*S mũ */ Page float Heso; /*H s */ }; Giả s danh sách s h n ợ Yêu c u: Vi rì mảng m t chi u c hi n yêu c u sau: S p x p mảng theo th tự giảm d n chèn Chu n a c: s mũ n Sm n p x p xuất hi n n a c 01 l n Ví d : R(x)= x 3+ x2+ x+ 2x2+ 2x+ sau chu n hoá R(x)= x 3+ 3x2+ 3x+ N n a c K ú ợt thực t p sinh viên phải: N m ợc ph n lý thuy t giáo trình Cấu trúc gi li u giải thu t N m ợc kỹ thu t l p trình, s d ng thành th o ngơn ng l T n c ợt tác phong làm vi c t p th giải quy t m t vấn Sa ợt thực t p, nhóm sinh viên phải làm báo cáo thực t p có n i dung : A I c M t (tree) - hình 9.1- g m m t t p h u h n nút (node) m t t p h u h n cành (branch) n i gi a nú n nú i cành vào (indegree), n a i nút g i cành (outdegree) S cành từ m t nút g i b c (degree) nú N u khơng rỗng phải có m t nút g i nút g c (root), nút khơng có cành vào Cây hình 9.1 có M nút g c Các nút cịn l i, nút phải có xác m t cành vào Tất nú u có th có 0, 1, ho c nhi u n cành Page Nút (leaf) ợ ịn n ĩa n nú mà s cành Các nút nút g c ho nú ợc g i nút trung gian hay nút (internal node) Nút có s cành khác có th g i nút cha (parent) nút mà cành n , nú n ũn ợc g i nút con(child) Các nút a ợc g i nút anh em (sibling) v i nhau.Nút nút cha có th g i nút ông (grandparent, m t s tốn ún a ũn n g n n trình bày giải thu t) Theo hình 9.1, nút g m: N, B, D, T, X, E, L, S; nút trung gian g m: A, C, O, Y Nút Y cha hai nút T X T X Y, nút anh em v i đ (path) từ nút n n nút n k ợ ịn n ĩa m t dãy nút n 1, n2, …, nk cho n i nút cha nút n i+1 v ≤ < Chi u dài (length) đ ờng đ s n nn, -1 Mỗ nú n u dài bằn n Trong m t cây, từ nút g n nút l i ch có m t n i v i nút n i, đ sâu (depth) hay g i m c (level) chi n n ất từ nút g n c ng Nút g c có m c Chi u cao (height) nút n i chi u dài n n ất từ n n m t nút M i nút có chi u cao Chi u cao chi u cao nút g c sâu bằn sâu nút sâu nhất, ln chi u cao Page N u gi a nút n nút n có m n , n2 n2 nút sau (descendant) n1 n nú c nút B M nút g c, có m A, C, B, có chi u dài B có m c n i ú r c (ancestor) n B là: M, B nút lá, có chi u cao Chi u cao C 2, A 3, M chi u cao M t có th ợc chia thành nhi u (subtree) M t m t cấ ú n i nút g Nú u tiên nút g c n i ta dùng tên nú n g i cho Cây g c A (hay g i t t A) g m nút A, N, C, B M n ũn chia thành nhi u khác Khái ni m dẫn n ịn n ĩa n sau: Đị ĩ : M t t p nút mà - t p rỗng, ho c - có m t nút g i nút g c có khơng ho c nhi n, n ũn Các cách bi u di n T ơn ng có cách bi u di n cây: bi u di n bằn thị – hình 9.1a, bi u di n cách canh l – hình 9.1b, bi u di n bi u th c có dấu ngo c – hình 9.1c ị C đị ĩ Đị ĩ : M t nhị phân ho c m t rỗng, ho c bao g m m t nút g i nút g c (root) hai nhị n ợc g i bên trái bên phải nút g c L ằn ịn n ĩa n ịn n ĩa n c cho m t cấ ú c tả nhị n n m t ki u d li u trừ ợng, c n ch tác v có th thực hi n nhị n n ản m t nhị phân t ng quát ún a n n có th t o cây, giải phóng cây, ki m tra rỗng, ,… ịn n ĩa n ôn an m n cách hi n thực nhị phân b nh Chúng ta thấy m t bi u di n liên k t tự nhiên d s d ng, n n n thự n mảng liên t ũn thích hợ ịnh n ĩa n ũn ơn an m n khóa ho c cách mà chún ợc s p th tự Cây nhị n ợc dùng cho nhi u m n có tìm ki m truy xuấ , c n gi m ịn n ĩa ng quát Page T m é a n c tính chung nhị phân, quay v ịn n ĩa ng quát nhìn xem chấ quy th hi n n cấu trúc m t nhị phân nh T ng hợp th nhất, m m t nhị phân rỗng ng hợ ản ôn n an n Cách nhấ xây dựng m t nhị phân có m t nút cho hai trái phải hai rỗng , nú c V i có hai nút, m t hai g c nút l i thu c Ho c trái ho c phải rỗng, cịn l i ch a xác ch m t nút N v y có hai nhị phân khác có hai nút Hai nhị phân có hai nút có th vẽ n a ợc a n a ún a ẽ không bao gi vẽ m t ph n m t nhị n n a không th n ợ nú n i trái hay phải nút iv ng hợp nhị phân có ba nút, m t chúng g c, hai nút cịn l i có th ợc chia gi a trái phải theo m t cách sau: 2+0 1+1 0+2 Do có th có hai nhị phân có hai nút ch có m t rỗn , ng hợp th cho hai nhị n T ng hợp th a, n ự, cho thêm hai T ng hợp gi a, trái phải ch có m t nút, ch có Page m t nhị phân có m nú n n ng hợp ch có m t nhị phân Tất ún a năm n ị phân có ba nút: xây dựng m n n ng hợp l n n Chúng ta b t u từ g c xem nút l n cách phân chia gi a trái phải Cây trái phải lúc ng hợp nh n m ún a t G i N s nút nhị phân, H chi u cao thì, Hmax = N, Hmin = ⎣log2N⎦+1 Nmin = H, Nmax = 2H-1 Khoảng cách từ m nú n nút g ịnh chi phí c n ịnh vị Chẳng h n m nú sâu phả nút g c qua cành n n từ g n n m n n , n u thấp vi c tìm n nút n an u dẫn n tính chất cân nhị phân H s cân (balance factor) chênh l ch gi a chi u cao hai trái phải nó: B = HL-HR M t cân h s n ũn n ằng M t nhị phân cân v i chi a c có s nút l n có th N ợc l i, v i s nú c nhị phân cân có chi u cao nh Thơng n u khó xả a n n ịn n ĩa n i l n n i trị B = –1, 0, ho c thay ch Chúng ta h c kỹ n cân AVL ph n sau M t nhị đ đủ (complete tree) ợc s nút t a i chi u cao n ũn n =0 i m i nút Thu t ng nhị phân g n đ đủ ũn ợc dùng ng hợ ợc chi u cao t i thi u m i nút m c l n d n h t v bên trái Page Hình 9.3 bi u di n nhị n ủ có 31 nút Giả s lo 25, 27, 29, 31 ta có m t nhị phân g n n ủ nú 9, , 3, C c Cách ch n tên preorder, inorder, postorder cho ba phép t khơng phải tình c , liên quan ch t chẽ n m t nh ng ng d n , bi u th c M t bi u th c (expression tree) ợc t o nên từ toán h n n ản toán t (s h c ho c lu n lý) bi u th c cách thay th toán h ng n ản nút m t nhị phân toán t nút bên n i v i tốn t hai ngơi, trái ch a m i toán h ng m i toán t thu c toán h ng bên trái toán t , n ải ch a m i toán h ng m i toán t thu c toán h ng bên phải Page 10 ... minh h a cho nh ng ng d n n m t ph n d li u ch a thông tin v n n n n ợc gán cho sinh viên theo th tự nh n, n m s không theo m t th tự c bi t Thông tin v sinh viên có th ợc tìm thấy nhanh chóng dựa... Page 15 N hình 4.5, hi n thực DSLK mảng liên t ợc tính linh ho t SL i v i nh ng a i Ngồi cịn có khả năn chia sẻ thơng tin (chẳng h n tên sinh viên) gi a DSLK khác Hi n thực n ũn òn m danh sách... u trừ ợng, c n ch tác v có th thực hi n nhị n n ản m t nhị phân t ng quát ún a n n có th t o cây, giải phóng cây, ki m tra rỗng, ,… ịn n ĩa n ôn an m n cách hi n thực nhị phân b nh Chúng ta thấy