Khái niệm Cây

20 444 1
Tài liệu đã được kiểm tra trùng lặp
Khái niệm Cây

Đ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)(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âyCâ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

Hình ảnh liên quan

(Xem hình vẽ) - Khái niệm Cây

em.

hình vẽ) Xem tại trang 3 của tài liệu.