Thông tin tài liệu
Cây (Tree)(Tree) Lê Sỹ Vinh Bộ môn Khoa Học Máy Tính – Khoa CNTT ðại Học Công Nghệ - ðHQGHN Email: vinhioi@yahoo.com 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 • Có ñường ñi duy nhất từ gốc tới mỗi ñỉnh của cây. Gốc ðỉnh trong Lá Cài ñặt cây bằng mảng con trỏ Template <class Item> class Node { Item data; List<Node*> children; } A root } Node<Item>* root; (Xem hình vẽ) B DC E F G Cài ñặt cây bằng hai con trỏ template <class Item> class Node { Item data; Node* firstChild; A root Node* firstChild; Node* nextSibling; }; Node<Item>* root; B C D GFE Duyệt cây Duyệt cây theo thứ tự trước • Thăm gốc r. • Duyệt lần lượt các cây con T 1 , ., T k theo thứ tự trước A B E F C D G Duyệt cây theo thứ tự trước Template <class Item> Preorder (Node* root) { visit (root); for each child r dofor each child r do Preorder (r); } Duyệt cây theo thứ tự sau • Duyệt lần lượt các cây con T 1 , ., T k theo thứ tự sau • Thăm gốc r. E F B C G D A Duyệt cây theo thứ tự sau Template <class Item> Postorder (Node* root) { for each child r do Postorder (r);Postorder (r); 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; }; [...]...Các 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 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 nh phân r ng là cây tìm... c u 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 • 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 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 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* root, lookingData) {... ñ nh 2 5 2 (c) 8 3 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); root ← min; Delete min; } else if (root.left == NULL) root = root.right . á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 nhị phân rỗng là cây tìm kiếm nhị phân • Cây nhị phân không rỗng T là cây tìm kiếm nhị. Cây (Tree)(Tree) Lê Sỹ Vinh Bộ môn Khoa Học Máy Tính – Khoa CNTT ðại Học Công Nghệ - ðHQGHN Email: vinhioi@yahoo.com Khái niệm cây • Cây là một
Ngày đăng: 06/11/2013, 01:15
Xem thêm: Khái niệm Cây