Hướng dẫn binary search tree python tutorial - hướng dẫn python cây tìm kiếm nhị phân
Cây tìm kiếm nhị phân là một cấu trúc dữ liệu nhanh chóng cho phép chúng tôi duy trì danh sách các số được sắp xếp. Show
Các thuộc tính tách một cây tìm kiếm nhị phân với cây nhị phân thông thường là
Cây nhị phân ở bên phải không phải là cây tìm kiếm nhị phân vì cây con bên phải của nút "3" chứa giá trị nhỏ hơn nó. Có hai hoạt động cơ bản mà bạn có thể thực hiện trên cây tìm kiếm nhị phân: Hoạt động tìm kiếmThuật toán phụ thuộc vào thuộc tính của BST rằng nếu mỗi cây con bên trái có các giá trị bên dưới gốc và mỗi cây con bên phải có các giá trị phía trên gốc. Nếu giá trị nằm dưới gốc, chúng ta có thể nói chắc chắn rằng giá trị không nằm trong phần cây con phù hợp; Chúng ta chỉ cần tìm kiếm ở cây con bên trái và nếu giá trị nằm trên gốc, chúng ta có thể nói chắc chắn rằng giá trị không nằm trong cây con bên trái; Chúng ta chỉ cần tìm kiếm trong phần con phù hợp. Algorithm:
Hãy để chúng tôi cố gắng hình dung điều này với một sơ đồ. 4 không được tìm thấy vì vậy, không tìm thấy cây con bên trái 84 nên không được tìm thấy, qua đường bên phải của 344 is not found so, traverse through the right subtree of 34 is not found so, traverse through the left subtree of 64 is foundNếu giá trị được tìm thấy, chúng ta trả về giá trị để nó được truyền trong mỗi bước đệ quy như trong hình dưới đây. Nếu bạn có thể nhận thấy, chúng tôi đã gọi tìm kiếm trả về (nút struct*) bốn lần. Khi chúng tôi trả về nút mới hoặc null, giá trị sẽ được trả về nhiều lần cho đến khi tìm kiếm (root) trả về kết quả cuối cùng. Nếu giá trị được tìm thấy trong bất kỳ người trừ nào, nó được truyền lên để cuối cùng nó được trả lại, nếu không thì null sẽ được trả vềNếu giá trị không được tìm thấy, cuối cùng chúng ta cũng đến được với đứa trẻ bên trái hoặc bên phải của một nút lá là null và nó được truyền và trả về. Chèn hoạt độngChèn một giá trị ở vị trí chính xác tương tự như tìm kiếm vì chúng tôi cố gắng duy trì quy tắc rằng cây con bên trái nhỏ hơn root và cây con bên phải lớn hơn root. Chúng tôi tiếp tục đi vào cây con bên phải hoặc cây con bên trái tùy thuộc vào giá trị và khi chúng tôi đạt đến một điểm con bên trái hoặc bên phải là null, chúng tôi đặt nút mới ở đó. Algorithm:
Thuật toán không đơn giản như vẻ ngoài của nó. Chúng ta hãy cố gắng hình dung cách chúng ta thêm một số vào một BST hiện có. 43 Vì vậy, ngang qua đứa con phải của 844>3 so, transverse through the right child of 84<6 so, transverse through the left child of 6 Insert 4 as a left child of 6Chúng tôi đã gắn nút nhưng chúng tôi vẫn phải thoát khỏi chức năng mà không gây ra bất kỳ thiệt hại nào cho phần còn lại của cây. Đây là nơi Điều này đảm bảo rằng khi chúng ta di chuyển trở lại cây, các kết nối nút khác không được thay đổi. Hình ảnh cho thấy tầm quan trọng của việc trả lại phần tử gốc ở cuối để các phần tử không mất vị trí của chúng trong bước đệ quy hướng lên.Hoạt động xóaCó ba trường hợp để xóa một nút từ cây tìm kiếm nhị phân. Trường hợp tôiTrong trường hợp đầu tiên, nút bị xóa là nút lá. Trong trường hợp như vậy, chỉ cần xóa nút khỏi cây. 4 là để xóa nútDelete the nodeTrường hợp IITrong trường hợp thứ hai, nút bị xóa đã xóa có một nút con duy nhất. Trong trường hợp như vậy, hãy làm theo các bước dưới đây:
Trường hợp IIITrong trường hợp thứ ba, nút bị xóa có hai con. Trong trường hợp như vậy, hãy làm theo các bước dưới đây:
Ví dụ về Python, Java và C/C ++
Sự phức tạp của cây tìm kiếm nhị phânĐộ phức tạp về thời gian
Chèn Độ phức tạp không gianĐộ phức tạp không gian cho tất cả các hoạt động là O (N). Ứng dụng cây tìm kiếm nhị phân
Làm thế nào để bạn thực hiện một cây tìm kiếm nhị phân trong Python?Thực hiện một cây B trong Python #.. Bước 1 - Lớp BSTNode # Việc triển khai của chúng tôi sẽ không sử dụng lớp cây mà thay vào đó chỉ là một lớp nút. .... Bước 2 - Chèn # .... Bước 3 - Nhận tối thiểu và nhận Max # .... Bước 4 - Xóa # .... Bước 5 - tồn tại # .... Bước 6 - Inorder # .... Bước 7 - Đặt hàng trước # .... Bước 8 - Bưu điện #. Python có cây tìm kiếm nhị phân không?Cây tìm kiếm nhị phân là một loại cấu trúc dữ liệu cây đặc biệt có thứ tự cung cấp một danh sách các nút hoặc đỉnh được sắp xếp.Trong Python, chúng ta có thể trực tiếp tạo một đối tượng BST bằng mô -đun BinaryTree.BST () tạo một cây tìm kiếm nhị phân ngẫu nhiên và trả về nút gốc của nó.In Python, we can directly create a BST object using binarytree module. bst() generates a random binary search tree and return its root node.
Làm thế nào để bạn viết một cây tìm kiếm nhị phân?Xây dựng một cây tìm kiếm nhị phân.. Đặt nút hiện tại thành nút gốc của cây .. Nếu giá trị đích bằng với giá trị khóa cho nút hiện tại, thì giá trị đích được tìm thấy..... Nếu giá trị đích nhỏ hơn giá trị khóa cho một nút, hãy tạo nút hiện tại của đứa trẻ bên trái .. Cây tìm kiếm nhị phân với ví dụ là gì?Cây tìm kiếm nhị phân là một thuật toán tiên tiến được sử dụng để phân tích nút, các nhánh bên trái và bên phải của nó, được mô hình hóa trong cấu trúc cây và trả về giá trị.BST được nghĩ ra trên kiến trúc của thuật toán tìm kiếm nhị phân cơ bản;Do đó, nó cho phép tra cứu nhanh hơn, chèn và loại bỏ các nút.an advanced algorithm used for analyzing the node, its left and right branches, which are modeled in a tree structure and returning the value. The BST is devised on the architecture of a basic binary search algorithm; hence it enables faster lookups, insertions, and removals of nodes. |