CTDL chương 3 cây nguyễn văn linh

97 4.3K 1
CTDL chương 3 cây  nguyễn văn linh

Đ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

Chương 3: CÂY Nguyễn Văn Linh Khoa Công nghệ Thông tin & Truyền thơng nvlinh@ctu.edu.vn NỘI DUNG • CÁC THUẬT NGỮ CƠ BẢN • CÁC PHÉP TỐN • CÀI ĐẶT CÂY • CÂY NHỊ PHÂN • CÂY TÌM KIẾM NHỊ PHÂN Nguyễn Văn Linh – Khoa CNTT CÁC THUẬT NGỮ CƠ BẢN (1) • Định nghĩa – Cây (tree): tập hợp hữu hạn phần tử gọi nút (nodes) tập hợp hữu hạn cạnh nối cặp nút lại với mà không tạo thành chu trình – Nút gốc quan hệ cha - Nguyễn Văn Linh – Khoa CNTT A B D C E F CÁC THUẬT NGỮ CƠ BẢN (2) • Ta định nghĩa cách đệ qui: – Một nút đơn độc cây, nút nút gốc – Nút n nút đơn độc k riêng lẻ T1, T2, Tk có nút gốc n1, n2, nk Khi ta có cách cho n cha nút n1, n2, … nk nuït gäúc n n1 n1 Cáy Nguyễn Văn Linh – Khoa CNTT T1 nk T2 Tk CÁC THUẬT NGỮ CƠ BẢN (3) • Ví dụ Nguyễn Văn Linh – Khoa CNTT CÁC THUẬT NGỮ CƠ BẢN (4) • Nút cha con: nút A cha nút B nút A mức i nút B mức i+1, đồng thời A B có cạnh nối – VD: Ở trên, nút B cha G H Nút I D • Bậc nút số nút đó, bậc nút =0 – VD: A có bậc 5, C có bậc 0, O có bậc • Bậc bậc lớn nút – VD: có bậc • Cây n-phân có bậc n – VD: Bậc hay ngũ phân Nguyễn Văn Linh – Khoa CNTT CÁC THUẬT NGỮ CƠ BẢN (5) • Nút gốc (root ) nút khơng có cha – VD: nút gốc A • Nút (leaf) nút khơng có – VD: nút C, G, H, J, K, M, N, P, Q • Nút trung gian (interior node): nút có bậc khác nút gốc – VD: nút B, D, E, F, I, L, O • Nút tiền bối (descendant) & nút hậu duệ (ancestor): Nếu có đường từ nút a đến nút b nút a tiền bối b, b hậu duệ a – VD: D tiền bối Q, cịn Q hậu duệ D • Cây nút với tất hậu duệ Nguyễn Văn Linh – Khoa CNTT CÁC THUẬT NGỮ CƠ BẢN (6) • Đường chuỗi nút n1, n2, , nk cho ni nút cha nút ni+1 (i=1 k-1) – VD: có đường A, D, I, O, Q • Độ dài đường số nút đường trừ – VD: độ dài đường A,D,I,O,Q = 5-1=4 • Chiều cao nút độ dài đường từ nút đến nút xa – VD: nút B có chiều cao 1, nút D có chiều cao • Chiều cao chiều cao nút gốc – VD: chiều cao Nguyễn Văn Linh – Khoa CNTT CÁC THUẬT NGỮ CƠ BẢN (7) • Độ sâu nút độ dài đường từ nút gốc đến nút đó, hay cịn gọi mức (level) nút – VD: I có độ sâu 2, E có độ sâu M, N, O, P có mức • Nhãn nút tên mà giá trị lưu trữ nút • Rừng tập hợp nhiều D P A M C B H Nguyễn Văn Linh – Khoa CNTT G CÁC THUẬT NGỮ CƠ BẢN (8) • Cây có thứ tự – Nếu ta phân biệt thứ tự nút ta gọi có thứ tự Ngược lại, gọi khơng có thứ tự – Trong có thứ tự, thứ tự qui ước từ trái sang phải A B Nguyễn Văn Linh – Khoa CNTT A C C B CÀI ĐẶT CÂY BST void Delete_Node(Key_Type X, BST &Root) { if (Root!=NULL) if(X < Root->Key) Delete_Node(X, Root->Left) else if(X > Root->Key) Delete_Node(X, Root->Right) else if(Root->Left==NULL)&&(Root->Right==NULL) Root=NULL; // Trường hợp else if(Root->Left == NULL) Root = Root->Right else if(Root->Right==NULL) Root = Root->Left // Trường hợp else Root->Key=Delete_Max(Root->Left); // Trường hợp 3: thay nhãn nhãn lớn bên trái xóa nút có nhãn lớn } Nguyễn Văn Linh – Khoa CNTT CÀI ĐẶT CÂY BST Key_Type Delete_Max (BST &Root ){ Key_Type k; if (Root->Right == NULL){ k=Root->Key; Root = Root->Left; return k; } else Delete_Max(Root->Right); } Nguyễn Văn Linh – Khoa CNTT KIẾN THỨC BỔ SUNG (1) • Thời gian tìm kiếm giá trị TKNP có N nút là: – O(logN) “cân bằng” (balanced) – O(N) “không cân bằng” (unbalanced) Nguyễn Văn Linh – Khoa CNTT KIẾN THỨC BỔ SUNG (2) • Ví dụ TKNP phân “khơng cân bằng” Nguyễn Văn Linh – Khoa CNTT CÂY CÂN BẰNG AVL • Cây cân (AVL) tìm kiếm nhị phân mà nút chiều cao hai sai khác không 23 76 16 37 35 27 85 50 40 Nguyễn Văn Linh – Khoa CNTT 50 72 76 35 37 23 16 27 40 72 85 CÂY NHỊ PHÂN ĐẦY ĐỦ (1) (full binary tree) • Một nhị phân “cây nhị phân đầy đủ” – Mỗi nút khơng phải có xác nút – Tất nút có chiều cao Nguyễn Văn Linh – Khoa CNTT CÂY NHỊ PHÂN ĐẦY ĐỦ (2) Nguyễn Văn Linh – Khoa CNTT CÂY NHỊ PHÂN ĐẦY ĐỦ (3) • Câu hỏi nhị phân đầy đủ: – Một nhị phân đầy đủ chiều cao h có nút lá? – Một nhị phân đầy đủ chiều cao h có tất nút? Nguyễn Văn Linh – Khoa CNTT CÂY NHỊ PHÂN HOÀN CHỈNH (1) (complete binary tree) • Một nhị phân hồn chỉnh (về chiều cao) thỏa mãn điều kiện sau: – Mức đến h-1 trình bày nhị phân đầy đủ chiều cao h-1 – Một nhiều nút mức h-1 có 0, nút – Nếu j, k nút mức h-1, j có nhiều nút k j bên trái k Nguyễn Văn Linh – Khoa CNTT CÂY NHỊ PHÂN HOÀN CHỈNH (2) • Ví dụ AA BB CC DD HH EE II JJ FF KK Figure 13.8 A complete binary tree Nguyễn Văn Linh – Khoa CNTT G G CÂY NHỊ PHÂN HỒN CHỈNH (3) • Được cho tập hợp N nút, nhị phân hoàn chỉnh nút cung cấp số nút nhiều - với chiều cao trung bình nút nhỏ • Cây hồn chỉnh n nút phải chứa nút có chiều cao  log n Nguyễn Văn Linh – Khoa CNTT CÂY NHỊ PHÂN CÂN BẰNG VỀ CHIỀU CAO (Height-balanced Binary Tree ) • Một nhị phân cân chiều cao nhị phân sau: – Chiều cao trái phải nút khác không đơn vị – Chú ý: nhị phân hoàn chỉnh cân chiều cao Nguyễn Văn Linh – Khoa CNTT CÂY CÂN BẰNG VỀ CHIỀU CAO – VÍ DỤ N M N- MLà nhị phân khác Nguyễn Văn Linh – Khoa CNTT DUYỆT CÂY NHỊ... Tree; Nguyễn Văn Linh – Khoa CNTT Khởi tạo rỗng void Make_Null_Tree (Tree &T){ T.Max_Node=0; } Nguyễn Văn Linh – Khoa CNTT Kiểm tra rỗng int Empty_Tree(Tree T) { return T.Max_Node == 0; } Nguyễn Văn. .. Post_Order(Root(T),T); getch(); } Nguyễn Văn Linh – Khoa CNTT CÀI ĐẶT CÂY BẰNG DS CÁC NÚT CON (1) • Minh họa F Nguyễn Văn Linh – Khoa CNTT B C A D G H I J E CÀI ĐẶT CÂY BẰNG DS CÁC NÚT CON (2) •

Ngày đăng: 06/12/2015, 19:00

Mục lục

    CÁC THUẬT NGỮ CƠ BẢN (1)

    CÁC THUẬT NGỮ CƠ BẢN (2)

    CÁC THUẬT NGỮ CƠ BẢN (3)

    CÁC THUẬT NGỮ CƠ BẢN (4)

    CÁC THUẬT NGỮ CƠ BẢN (5)

    CÁC THUẬT NGỮ CƠ BẢN (6)

    CÁC THUẬT NGỮ CƠ BẢN (7)

    CÁC THUẬT NGỮ CƠ BẢN (8)

    CÁC THUẬT NGỮ CƠ BẢN (9)

    CÁC THUẬT NGỮ CƠ BẢN (10)

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

Tài liệu liên quan