Cấu trúc dữ liệu Python: Cây cho

Cây Python rất giống danh sách liên kết, nhưng có thứ tự phân cấp. Cây bao gồm các nút liên kết với các nút khác. Nút dưới cùng không có liên kết được gọi là lá . Nút được liên kết với một nút khác được gọi là nút cha và nút được liên kết đến là nút con.

Một cây thường được xây dựng với nhiều nút hoặc cấu trúc sâu xếp tầng. Vì vậy, bạn có thể nói một cái cây rộng hoặc sâu .

Cây rộng so với cây sâu

Một phiên bản hiệu quả của cấu trúc cây được gọi là cây tìm kiếm nhị phân. Đó là nơi bạn chỉ cho phép một nút cha có hai nút con. Nút bên trái có giá trị nhỏ hơn nút bên phải. Việc xây dựng một cái cây như thế này làm cho việc đi qua và tìm một giá trị cụ thể rất hiệu quả.

ví dụ về cấu trúc cây nhị phân

Trong ví dụ trên, nếu tôi muốn tìm giá trị 98 từ 39, tôi sẽ di chuyển sang phải 98> 39 - từ 70 di chuyển sang phải một lần nữa - từ 97 di chuyển sang phải và trong ba lần di chuyển, tôi đã tìm thấy nút mong muốn của mình.

Vì vậy, hãy xây dựng một nút cây trong python và xem một nút đang hoạt động. Tất cả những gì chúng ta cần để bắt đầu một nút cây là một cái tên. Chúng tôi sẽ tự động gán cho nó một danh sách trống để chứa tất cả các nút con sắp tới.

Nếu bạn đã đọc các bài viết trước đây của tôi về cấu trúc dữ liệu python, điều này sẽ trông quen thuộc.

Bây giờ, như với bất kỳ cấu trúc dữ liệu nào, chúng ta phải ghi nhớ các chức năng thực tế mà chúng ta muốn cây của chúng ta có. Thêm một nút và xóa một nút là những lựa chọn hiển nhiên và cũng dễ thực hiện.

Để thêm, tôi sẽ sử dụng phương thức append () và để xóa, tôi chỉ cần lặp lại danh sách self.children và thêm lại tất cả các nút, ngoại trừ nút tôi muốn xóa.

Tiếp theo, chúng ta sẽ đi ngang qua cây để tìm thông tin chúng ta muốn. Để xây dựng phương pháp này, chúng tôi sẽ bắt đầu với một danh sách trống để điền vào mỗi nút để truy cập. Mặc dù nút đó có các nút con, chúng tôi sẽ bật nó ra và thêm nó vào danh sách các nút để truy cập.

Bạn nghĩ cấu trúc dữ liệu như thế này sẽ được sử dụng ở đâu tốt nhất? Có lẽ nếu chúng tôi thêm một số logic để truy cập các nút, chúng tôi có thể phân chia rất nhiều đặc quyền mà người dùng có thể có.

Cây dữ liệu là một công cụ tuyệt vời và được sử dụng rộng rãi trong thế giới mã hóa. Tôi hy vọng phần giới thiệu ngắn gọn này ít nhất cũng mang lại một cái nhìn đáng giá về lý do tại sao bạn muốn biết về những cấu trúc này.

Suggested posts

Tìm kiếm thông tin về tên miền

Đoạn trích từ Small, Sharp Software Tools của Brian P. Hogan

Tìm kiếm thông tin về tên miền

Khi bạn gửi yêu cầu tới facebook.com, máy tính của bạn sẽ tra cứu tên miền để dịch tên miền đó thành địa chỉ IP để máy tính của bạn có thể thực hiện kết nối đó.

Cách chạy plugin ChatGPT miễn phí bằng Langchain

Cách chạy plugin ChatGPT miễn phí bằng Langchain

Chắc hẳn bạn đã nghe về tất cả các plugin ChatGPT mạnh mẽ mới như Trình duyệt, Trình thông dịch mã, v.v. Nhưng có một vấn đề là quyền truy cập vào các plugin bị giới hạn trong danh sách chờ và do đó nhiều người không có quyền truy cập.

Related posts

Tìm kiếm thông tin về tên miền

Đoạn trích từ Small, Sharp Software Tools của Brian P. Hogan

Tìm kiếm thông tin về tên miền

Khi bạn gửi yêu cầu tới facebook.com, máy tính của bạn sẽ tra cứu tên miền để dịch tên miền đó thành địa chỉ IP để máy tính của bạn có thể thực hiện kết nối đó.

Thử thách đọc Goodreads là độc hại

Thử thách đọc Goodreads là độc hại

Tay tôi ngứa ngáy lan rộng khi tôi mặc cả với người bán sách địa phương để mua một cuốn sách khác. Cuốn sách này giống như những cuốn còn lại mà tôi đã mua gần đây sẽ lên ngôi trong đống 'Cần đọc' (TBR) của tôi; tuy nhiên, tôi đã mua nó.

Tài trợ cho việc loại bỏ carbon trong năm tài chính 24

Phân tích các yêu cầu phân bổ của Carbon180 trên các lộ trình

Tài trợ cho việc loại bỏ carbon trong năm tài chính 24

Bởi Alyson Lee, cố vấn quản lý các vấn đề của chính phủ Quy trình phân bổ ngân sách hàng năm của chính phủ liên bang là trọng tâm trong những nỗ lực của chúng tôi nhằm tài trợ cho việc loại bỏ carbon dioxide (CDR). Mỗi năm, Carbon180 gửi yêu cầu tới các văn phòng quốc hội khác nhau để giúp hướng dẫn nơi đô la của năm tới sẽ chảy.

Không còn mật khẩu — mật khẩu sẽ thay thế mật khẩu của bạn như thế nào

Không còn mật khẩu — mật khẩu sẽ thay thế mật khẩu của bạn như thế nào

Để tránh sự mơ hồ, các thuật ngữ sau đây sẽ được sử dụng; Trình xác thực; Điện thoại di động được sử dụng để đăng nhập Website; Trang web hoặc ứng dụng mà người dùng đang sử dụng để thực hiện yêu cầu đăng nhập Dịch vụ; Nhà cung cấp cung cấp dịch vụ nhất định, ví dụ: