Khoa học máy tính - Cây (Tree) pps

21 223 0
Khoa học máy tính - Cây (Tree) pps

Đ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

Cây (Tree) Nguyễn Phương Thái Bộ môn Khoa Học Máy Tính – Khoa CNTT Đại Học Công Nghệ ĐHQGHN Đại Học Công Nghệ - ĐHQGHN Email: thainp@vnu.edu.vn Khái niệm cây Khái niệm cây • Cây là một đồ thị định hướng thỏa mãn các tính chất sau: • Có một đỉnh đặc biệt được gọi là gốc cây • Mỗi đỉnh C bất kỳ không phải là gốc, tồn tại duy nhất một đỉnh P có cung đi từ P đến C. Đỉnh P đư ợ c gọ i là cha của đỉnh C , và C là con của P ợ gọ , • Có đường đi duy nhất từ gốc tới mỗi đỉnh của cây. Gốc Gốc Đỉnh trong Lá Cài đặt cây bằng mảng con trỏ Cài đặt cây bằng mảng con trỏ Tem p late <class Item> p class Node { Item data; root List<Node*> children; } A Node<Item>* root; B DC Node<Item>* root; (Xem hình vẽ) (Xem hình vẽ) E F G Cài đặt cây bằng hai con trỏ Cài đặt cây bằng hai con trỏ tem p late<classItem> root p classNode { A root Itemdata; Node*firstChild; * Node * nextSibling; }; B C D Node<Item>* root; GFE Duyệt cây Duyệt cây Duyệt cây theo thứ tự trước Duyệt cây theo thứ tự trước • Thăm gố c r. g • Duyệt lần lượt các cây con T 1 , , T k theo thứ tự trước ABEFCDG A B E F C D G Duyệt cây theo thứ tự trước Duyệt cây theo thứ tự trước Template <class Item> Template  <class  Item> Preorder(Node*root){ ii () v i s i t ( root ) ; foreachchildr do Preorder(r); } } Duyệt cây theo thứ tự sau Duyệt cây theo thứ tự sau • Du y ệt l ầ n lượt các câ y con T 1 , , T k theo thứ tự sau y y 1 k • Thăm gốc r. EFBCGDA E F B C G D A Duyệt cây theo thứ tự sau Duyệt cây theo thứ tự sau Template <class Item> Template  <class  Item> Postorder (Node*root){ f h hild f d f oreac h c hild r o f roo t d o Postorder (r); visit (root); visit  (root); } Cây nhị phân template <class Item> Class Node { Item data; // Dữ liệu chứa trong mỗi đỉnh Node* left; Node* right; }; [...]... trúc cây tìm kiếm nhị phân Cây tìm kiếm nhị phân • Cây nhị phân rỗng là cây tìm kiếm nhị phân • y ịp g g y Cây nhị phân không rỗng T là cây tìm kiếm nhị phân nếu: – Khóa của gốc lớn hơn khóa của tất cả các đỉnh ở cây con y trái TL và nhỏ hơn khóa của tất cả các đỉnh ở cây con phải TR – Cây con trái TL và cây con y y phải TR là các cây tìm kiếm nhị phân Phép toán tìm kiếm (search) binarySearchTree (Node*... kiểu cây nhị phân Cây nhị phân đầy đủ Cây nhị phân cân bằng: Độ cao cây con y ịp g ộ y bến trái và bên phải chênh nhau không quá một Problem Bài toán: Cho một danh sách các đối tượng, hãy tổ chức cấu trúc dữ liệu để thực hiện các phép toán dưới đây một cách hiệu quả: • • • ( ) Tìm kiếm (search) Thêm vào (insert) Xóa đi (delete) Đáp án: Dùng cấu trúc cây tìm kiếm nhị phân Cây tìm kiếm nhị phân • Cây. .. 12 8 9 (c) 11 6 6 11 9 Xóa đỉnh 7 12 Phép toán xóa (delete) Delete (root, deleteData) { if (deleteData < root.data) Delete (root.left, deleteData); //Loại ở cây con trái else if (deleteData > root.data) Delete (root.right, deleteData); // Loại ở cây con phải else if (root.left != NULL && root.right != NULL) { min Min (root.right); ( g ) root  min; Delete min; } else if (root.left == NULL) ( ) root =... lookingData) return root else l if (root.data < lookingData) return binarySearchTree (root.right, lookingData) else return binarySearchTree (root.left, lookingData) } Phép toán tìm kiếm phần tử nhỏ nhất - lớn nhất //Root != NULL Min (Node* root) { if (Root left == NULL) return root else return Min (root.left) } Max (Node* root) { if (Root right == NULL) return root else return Max (root.right) } Phép . Cây (Tree) Nguyễn Phương Thái Bộ môn Khoa Học Máy Tính – Khoa CNTT Đại Học Công Nghệ ĐHQGHN Đại Học Công Nghệ - ĐHQGHN Email: thainp@vnu.edu.vn Khái niệm cây Khái niệm cây • Cây là. D Node<Item>* root; GFE Duyệt cây Duyệt cây Duyệt cây theo thứ tự trước Duyệt cây theo thứ tự trước • Thăm gố c r. g • Duyệt lần lượt các cây con T 1 , , T k theo thứ tự trước ABEFCDG A . (insert) • Xóa đi (delete) Đáp án: Dùng cấu trúc cây tìm kiếm nhị phân Cây tìm kiếmnhị phân Cây tìm kiếm nhị phân • Cây nhị phân rỗng là cây tìm kiếm nhị phân • Câ y nh ị p hân khôn g

Ngày đăng: 09/07/2014, 20:20

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

Tài liệu liên quan