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
Số trang: 37
Loại file: pdf
Dung lượng: 983.35 KB
Lượt xem: 8
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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.
Nội dung trích xuất từ tài liệu:
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 QueueWinter 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ậpWinter 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->keyWinter 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âyWinter 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 classWinter 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 classWinter 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 = 20Winter 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 ...
Nội dung trích xuất từ tài liệu:
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 QueueWinter 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ậpWinter 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->keyWinter 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âyWinter 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 classWinter 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 classWinter 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 = 20Winter 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 ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Cấu trúc dữ liệu và giải thuật Data structures Cây nhị phân Cây nhị phân tìm kiếm Hàng đợi ưu tiênGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 301 0 0 -
3 trang 156 3 0
-
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 154 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 154 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 146 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 139 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 136 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 136 0 0 -
10 trang 136 0 0
-
57 trang 117 1 0