1. Trang chủ
  2. » Tất cả

11 cây nhị phân chuong 5 bst + priority queue

37 1 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 440,8 KB

Nội dung

2 85Winter 2014 (C) Nguyen Tri Tuan DH KHTN Tp HCM 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[.]

Cây nhị phân Các khái niệm thuật ngữ Cài đặt cấu trúc liệu Duyệt Cây nhị phân tìm kiếm – Binary Search Tree Hàng đợi ưu tiên – Priority Queue Winter 2014 85 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Cây nhị phân tìm kiếm (BST) Ý nghĩa BST Binary Search Tree ADT Cài đặt cấu trúc liệu BST Đánh giá/So sánh Bài tập Winter 2014 86 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Ý nghĩa BST (1) Tìm phần tử nhị phân ? Thuật toán ? Chi phí ? Winter 2014 87 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Ý nghĩa BST (2) Điểm yếu điểm mạnh mảng ? Điểm yếu điểm mạnh danh sách liên kết ? Một cấu trúc liệu có điểm mạnh mảng danh sách liên kết ? Winter 2014 88 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Binary Search Tree ADT (1) Cây nhị phân tìm kiếm là: Một nhị phân Mỗi node có khóa (key) Mỗi node p thỏa: • Tất node thuộc trái có khóa nhỏ khóa p ∀q ∈ p->left: q->key < p->key • Tất node thuộc phải có khóa lớn khóa p ∀q ∈ p->right: q->key > p->key Winter 2014 89 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Binary Search Tree ADT (2) Winter 2014 90 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Binary Search Tree ADT (3) Winter 2014 91 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Binary Search Tree ADT (4) Các thao tác bản: Khởi tạo rỗng Xóa Thêm node Xóa node Tìm node Duyệt Kiểm tra rỗng Đếm số node Tính chiều cao Winter 2014 92 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Cài đặt cấu trúc liệu BST (1) template class BSTNode public: T key; BSTNode *left; BSTNode *right; { // key of node // pointer to left child // pointer to right child BSTNode() { } BSTNode(T aKey) { key = aKey; left = right = NULL; } }; // end class Winter 2014 93/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Cài đặt cấu trúc liệu BST (2) template class BINARY_SEARCH_TREE { private: BSTNode *root; // pointer to root of tree bool insertNode(BSTNode *&p, T newKey); bool removeNode(BSTNode *&p, T aKey); 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 newKey); bool remove(T aKey); BSTNode*findNode(T aKey); bool isEmpty(); int countNode(); int height(); void preorder(); void inorder(); void postorder(); }; // end class Winter 2014 // add new node with ‘newKey’ // find and remove node with ‘aKey’ // find node with ‘aKey’ // // // // // 94 call call call call call countNode(root) height(root) NLR(root) LNR(root) LRN(root) (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM .. .Cây nhị phân tìm kiếm (BST) Ý nghĩa BST Binary Search Tree ADT Cài đặt cấu trúc liệu BST Đánh giá/So sánh Bài tập Winter 2014 86 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Ý nghĩa BST (1) Tìm... cấu trúc liệu BST (1) template class BSTNode public: T key; BSTNode *left; BSTNode *right; { // key of node // pointer to left child // pointer to right child BSTNode() { } BSTNode(T aKey)... Winter 2014 88 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Binary Search Tree ADT (1) Cây nhị phân tìm kiếm là: Một nhị phân Mỗi node có khóa (key) Mỗi node p thỏa: • Tất node thuộc trái có khóa nhỏ

Ngày đăng: 25/03/2023, 13:09

w