Hướng dẫn what is binary search tree in python - cây tìm kiếm nhị phân trong python là gì
Cây tìm kiếm nhị phân là gì? 🔗 🔗Cây tìm kiếm nhị phân, hoặc viết tắt là một cây trong đó mỗi nút có giá trị lớn hơn tất cả các nút con trái của nó và ít hơn tất cả các nút con phải của nó. Đọc tiếp để thực hiện một cây tìm kiếm nhị phân trong Python từ đầu! Show
Tại sao tôi sẽ sử dụng một cây tìm kiếm nhị phân? 🔗 🔗Cây nhị phân rất hữu ích để lưu trữ dữ liệu theo cách có tổ chức để có thể nhanh chóng lấy, chèn, cập nhật và xóa. Sự sắp xếp của các nút này cho phép mỗi so sánh để bỏ qua khoảng một nửa phần còn lại của cây, do đó, mỗi hoạt động nói chung là sét nhanh. Nói chính xác, các cây tìm kiếm nhị phân cung cấp độ phức tạp trung bình lớn của 1 cho các hoạt động tìm kiếm, chèn, cập nhật và xóa. 2 nhanh hơn nhiều so với thời gian 3 tuyến tính cần thiết để tìm các phần tử trong một mảng chưa được phân loại. Nhiều cơ sở dữ liệu sản xuất phổ biến như PostgreSQL và MySQL sử dụng cây nhị phân dưới mui xe để tăng tốc các hoạt động của CRUD.Ưu điểm của một BST 🔗 🔗
Nhược điểm của một BST 🔗 🔗
Nhận một công việc back-end mà không cần chi 10 nghìn đô la cho một bootcamp
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 đã giành chiến thắng sử dụng một lớp 7, nhưng thay vào đó chỉ là một lớp 8. Cây nhị phân thực sự chỉ là một con trỏ tới một nút gốc lần lượt kết nối với từng nút con, vì vậy chúng tôi sẽ chạy với ý tưởng đó.Đầu tiên, chúng tôi tạo một hàm tạo:
Chúng tôi sẽ cho phép một giá trị, cũng sẽ đóng vai trò là chìa khóa, được cung cấp. Nếu một người không được cung cấp, chúng tôi sẽ đặt nó thành 9. Chúng tôi cũng sẽ khởi tạo cả hai đứa trẻ của nút mới thành 9.Bước 2 - Chèn 🔗 🔗Chúng ta cần một cách để chèn dữ liệu mới vào cây. Chèn một nút mới nên nối nó như một nút lá ở vị trí thích hợp.
Phương pháp chèn như sau:
Nếu nút không có giá trị, chúng ta chỉ có thể đặt giá trị đã cho và trả về. Nếu chúng ta cố gắng chèn một giá trị cũng tồn tại, chúng ta cũng có thể quay lại vì điều này có thể được coi là một không có op. Nếu giá trị đã cho nhỏ hơn giá trị nút của chúng tôi và chúng tôi đã có con trái thì chúng tôi gọi đệ quy 1 trên đứa con trái của chúng tôi. Nếu chúng tôi không có một đứa con trái thì chúng tôi chỉ cần làm cho giá trị đã cho là đứa con bên trái mới của chúng tôi. Chúng ta có thể làm như vậy (nhưng đảo ngược) cho phía bên phải của chúng ta.Bước 3 - Nhận tối thiểu và nhận tối đa 🔗
2 và 3 là các chức năng trợ giúp hữu ích và chúng rất dễ viết! Chúng là các hàm đệ quy đơn giản đi qua các cạnh của cây để tìm các giá trị nhỏ nhất hoặc lớn nhất được lưu trữ trong đó.Bước 4 - Xóa 🔗 🔗
Hoạt động xóa là một trong những hoạt động phức tạp hơn. Nó cũng là một chức năng đệ quy, nhưng nó cũng trả về trạng thái mới của nút đã cho sau khi thực hiện thao tác xóa. Điều này cho phép cha mẹ có con đã bị xóa để đặt đúng cách 4 hoặc 5 thành viên dữ liệu thành 9.Bước 5 - tồn tại 🔗 🔗Hàm tồn tại là một hàm đệ quy đơn giản khác trả về 7 hoặc 8 tùy thuộc vào việc một giá trị nhất định đã tồn tại trong cây.
Bước 6 - Inorder 🔗 🔗Nó rất hữu ích để có thể in ra cây theo định dạng có thể đọc được. Phương pháp 9 in các giá trị trong cây theo thứ tự các khóa của chúng.
Bước 7 - Đặt hàng trước 🔗 🔗
Bước 8 - Bưu điện 🔗 🔗
Sử dụng BST 🔗 🔗
Cây tìm kiếm nhị phân đầy đủ trong Python 🔗 🔗 0Bạn sẽ sử dụng cây tìm kiếm nhị phân ở đâu trong cuộc sống thực? 🔗 🔗Có nhiều ứng dụng của các cây tìm kiếm nhị phân trong cuộc sống thực và một trong những trường hợp sử dụng phổ biến nhất là trong việc lưu trữ các chỉ mục và khóa trong cơ sở dữ liệu. Ví dụ: trong MySQL hoặc PostgreSQL Khi bạn tạo một cột khóa chính, những gì bạn thực sự đang làm là tạo một cây nhị phân trong đó các phím là các giá trị của cột và các nút đó trỏ đến các hàng cơ sở dữ liệu. Điều này cho phép ứng dụng dễ dàng tìm kiếm các hàng cơ sở dữ liệu bằng cách cung cấp khóa. Ví dụ: nhận được bản ghi người dùng bằng khóa chính 0.Có nhiều ứng dụng của các cây tìm kiếm nhị phân trong cuộc sống thực và một trong những trường hợp sử dụng phổ biến nhất là lưu trữ các chỉ mục và khóa trong cơ sở dữ liệu. Ví dụ: khi bạn tạo một cột khóa chính trong MySQL hoặc PostgreSQL, bạn tạo một cây nhị phân trong đó các phím là các giá trị của cột và các nút trỏ đến các hàng cơ sở dữ liệu. Điều này cho phép ứng dụng dễ dàng tìm kiếm các hàng cơ sở dữ liệu bằng cách chỉ định khóa, để tìm bản ghi người dùng bằng khóa chính email. Các ứng dụng phổ biến khác bao gồm:
Điều gì khác biệt giữa một cây nhị phân và một danh sách được liên kết? 🔗 🔗Trong khi các cây nhị phân và danh sách được liên kết cả hai sử dụng con trỏ để theo dõi các nút, cây nhị phân hiệu quả hơn để tìm kiếm. Trên thực tế, các danh sách được liên kết là 3 khi được sử dụng để tìm kiếm một yếu tố cụ thể - điều đó khá tệ! Danh sách được liên kết vượt trội khi loại bỏ và chèn các yếu tố nhanh chóng ở giữa danh sách.
Cây tìm kiếm nhị phân là gì?Cây tìm kiếm nhị phân là một cây nhị phân có nguồn gốc trong đó các nút được sắp xếp trong tổng số thứ tự trong đó các nút có các phím lớn hơn bất kỳ nút cụ thể nào được lưu trữ trên các cây con bên phải và các nút có Cây con trái thỏa mãn thuộc tính tìm kiếm nhị phân.
Làm thế nào một cây tìm kiếm nhị phân được triển khai 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 được tối đa 🔗 .... 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 🔗. Cây nhị phân giải thích với ví dụ là gì?Cây nhị phân là cấu trúc dữ liệu phi tuyến tính kiểu cây với tối đa hai con cho mỗi cha mẹ.Mỗi nút trong một cây nhị phân có một tham chiếu trái và phải cùng với phần tử dữ liệu.Nút ở đầu phân cấp của một cây được gọi là nút gốc.Các nút giữ các nút phụ khác là các nút cha.
Làm thế nào để tìm kiếm nhị phân trong Python hoạt động?Tìm kiếm nhị phân so sánh giá trị mục tiêu với phần tử giữa của mảng.Nếu chúng không bằng nhau, một nửa trong đó mục tiêu không thể bị loại bỏ và tìm kiếm tiếp tục ở nửa còn lại, một lần nữa lấy phần tử giữa để so sánh với giá trị đích và lặp lại điều này cho đến khi tìm thấy giá trị đích. |