Bài giảng Cấu trúc dữ liệu và giải thuật: Cây nhị phân (tt) - Nguyễn Tri Tuấn
lượt xem 2
download
Phần tiếp theo bài giảng "Cấu trúc dữ liệu và giải thuật: Cây nhị phân" cung cấp cho các bạn các kiến thức: Cây nhị phân tìm kiếm – Binary search tree, hàng đợi ưu tiên – Priority queue. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu và giải thuật: Cây nhị phân (tt) - Nguyễn Tri Tuấn
- Cây nhị phân Các khái niệm và thuật ngữ cơ bản Cài đặt cấu trúc dữ liệu Duyệt cây Cây nhị phân tìm kiếm – Binary Search Tree Hàng đợi ưu tiên – Priority Queue Winter 2017 85 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Cây nhị phân tìm kiếm (BST) Ý nghĩa của cây BST Binary Search Tree ADT Cài đặt cấu trúc dữ liệu BST Đánh giá/So sánh Bài tập Winter 2017 86 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Ý nghĩa của cây BST (1) Tìm 1 phần tử trong cây nhị phân ? Thuật toán ? Chi phí ? Winter 2017 87 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Ý nghĩa của cây BST (2) Điểm yếu và điểm mạnh của mảng ? Điểm yếu và điểm mạnh của danh sách liên kết ? Một cấu trúc dữ liệu có được cả điểm mạnh của mảng và danh sách liên kết ? Winter 2017 88 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Binary Search Tree ADT (1) Cây nhị phân tìm kiếm là: Một cây nhị phân Mỗi node có một khóa (key) Mỗi node p của cây đều thỏa: • Tất cả các node thuộc cây con trái đều có khóa nhỏ hơn khóa của p q p->left: q->key < p->key • Tất cả các node thuộc cây con phải đều có khóa lớn hơn khóa của p q p->right: q->key > p->key Winter 2017 89 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Binary Search Tree ADT (2) Winter 2017 90 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Binary Search Tree ADT (3) Winter 2017 91 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Binary Search Tree ADT (4) Các thao tác cơ bản: Khởi tạo cây rỗng Xóa cây Thêm một node Xóa một node Tìm một node Duyệt cây Kiểm tra cây rỗng Đếm số node trong cây Tính chiều cao của cây Winter 2017 92 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Cài đặt cấu trúc dữ liệu BST (1) template class BSTNode { public: T key; // key of node BSTNode *left; // pointer to left child BSTNode *right; // pointer to right child BSTNode() { } BSTNode(T newItem) { key = newItem; left = right = NULL; } }; // end class Winter 2017 93/203 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Cài đặt cấu trúc dữ liệu BST (2) template class BINARY_SEARCH_TREE { private: BSTNode *root; // pointer to root of tree bool insertNode(BSTNode *&p, T newItem); bool removeNode(BSTNode *&p, T key); int countNode(BSTNode *p); int height(BSTNode *p); void LNR(BSTNode *p); void NLR(BSTNode *p); void LRN(BSTNode *p); public: BINARY_SEARCH_TREE(); // default constructor BINARY_SEARCH_TREE(const BINARY_SEARCH_TREE &aTree);// copy constructor ~BINARY_SEARCH_TREE(); // destructor // operations bool insert(T newItem); // add new node with ‘newItem’ bool remove(T key); // find and remove node with ‘key’ BSTNode*findNode(T key); // find node with ‘key’ bool isEmpty(); int countNode(); // call countNode(root) int height(); // call height(root) void preorder(); // call NLR(root) void inorder(); // call LNR(root) void postorder(); // call LRN(root) }; // end class Winter 2017 94 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tìm một node (1) Tìm key = 20 Winter 2017 95 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tìm một node (2) Jane Bob Tom Alan Ellen Nancy Wendy Tìm key = “Nancy" Winter 2017 96 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tìm một node (3) right==NULL không tìm thấy Tìm key = 21 not found ! Winter 2017 97 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tìm một node (4) template BSTNode* BINARY_SEARCH_TREE::findNode(T key) { if (root==NULL) return NULL; BSTNode *p = root; while (p) { if (p->key==key) return p; // Tìm thấy else if (p->key > key) p = p->left; // Tìm nhánh trái else p = p->right; // Tìm nhánh phải } return NULL; // Không tìm thấy } Winter 2017 98 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Thêm một node (1) Thêm key = “Frank" Jane Bob Tom Alan Ellen Nancy Wendy right==NULL ngừng tìm kiếm thêm node mới ở đây Winter 2017 99 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Thêm một node (2) left==NULL ngừng tìm kiếm Thêm key = 18 thêm node mới ở đây Winter 2017 100 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Thêm một node (3) key đã tồn tại không thêm nữa Thêm key = 20 Winter 2017 101 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Thêm một node (4) Thêm các key: e,b,d,f,a,g,c Winter 2017 102 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Xóa một node (1) Các trường hợp xảy ra: Xóa node lá Xóa node chỉ có 1 cây con Xóa node có 2 cây con Winter 2017 103 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Xóa một node (2) Xóa key = 4 (node lá) Winter 2017 104 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 174 | 17
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 162 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 77 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 116 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây đỏ đen - Bùi Tiến Lên
25 p | 78 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p | 77 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 57 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 158 | 6
-
Bài giảng Cấu trúc dữ liệu - Chương 3: Cấu trúc cây
65 p | 58 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AA - Bùi Tiến Lên
30 p | 35 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 105 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây - Bùi Tiến Lên
68 p | 40 | 4
-
Bài giảng Cấu trúc dữ liệu: Chương 1 - ThS. Thiều Quang Trung (2018)
44 p | 43 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên
38 p | 46 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Ngô Quang Thạch
24 p | 58 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 68 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 50 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn