Cây được đại diện bởi một tập hợp các nút được kết nối bởi các cạnh. Chúng được coi là cấu trúc dữ liệu phân cấp và phi tuyến tính, vì dữ liệu trong cây được lưu trữ trên nhiều cấp độ. Cây có những đặc điểm sau Show
Có những cây nói chung có các thuộc tính được liệt kê ở trên và không có hạn chế nào khác về số lượng nút. Ngoài ra còn có nhiều loại cấu trúc dữ liệu cây với nhiều hạn chế hơn cho các trường hợp sử dụng khác nhau và dưới đây là một số loại thường thấy
Sau khi xem xét các loại cấu trúc dữ liệu cây phổ biến, dưới đây là một số ví dụ phổ biến về thuật toán duyệt cây và cách triển khai chúng trong Python Tìm kiếm theo chiều rộng (BFS)Tìm kiếm đầu tiên (BFS) là một thuật toán phổ biến được sử dụng để duyệt qua cây tìm kiếm nhị phân (BST) hoặc biểu đồ theo thứ tự có hệ thống. Nó bắt đầu tại nút gốc ở mức 0 và truy cập từng nút một di chuyển ngang từ bên này sang bên kia cho đến khi tìm thấy nút mong muốn hoặc tất cả các nút đã được truy cập. Thuật toán tìm kiếm rộng trước khi đi sâu hơn, do đó có tên là bread-first search Độ phức tạp về thời gian của BFS là O(n), vì kích thước cây được quyết định bởi độ dài tìm kiếm mục và mỗi nút được truy cập một lần. Dưới đây là triển khai trong Python def bfs(graph, source): Tìm kiếm chuyên sâuTìm kiếm theo chiều sâu (DFS) là một biến thể khác của thuật toán duyệt cây, trong đó nó cũng bắt đầu từ nút gốc nhưng di chuyển xuống một nhánh và đi xuống nhánh càng xa càng tốt. Nếu nút mong muốn không nằm trong nhánh đó, nó sẽ quay trở lại và chọn một nhánh khác để đi xuống. Thuật toán thực hiện điều này cho đến khi tìm thấy nút mong muốn hoặc tất cả các nút đã được truy cập. Thuật toán khám phá một nhánh (sâu) trước khi đi đến một nhánh khác, do đó có tên là tìm kiếm theo chiều sâu Độ phức tạp về thời gian của DFS cũng là O(n) vì những lý do tương tự như BFS. Dưới đây là triển khai trong Python def dfs(graph, source): Phần kết luậnCây là cấu trúc dữ liệu hữu ích để biểu diễn dữ liệu phân cấp và phi tuyến tính. Các loại cấu trúc dữ liệu cây được sử dụng phổ biến nhất là cây nhị phân (mỗi nút trong cây có nhiều nhất hai nút con), cây tìm kiếm nhị phân (cây nhị phân trong đó các nút được sắp xếp theo giá trị) và đống (cây trong đó các nút cha nhỏ hơn hoặc Về mặt thuật toán, tìm kiếm dựa trên bánh mì và tìm kiếm theo chiều sâu là các thuật toán duyệt cây quan trọng với nhiều ứng dụng trong thế giới thực, từ tìm đường đi và lập kế hoạch tuyến đường trong hệ thống định vị GPS đến lập lịch trình cho cấu trúc liên kết mạng. Trong bài viết tiếp theo, chúng ta sẽ xem xét một ví dụ đặc biệt về phép duyệt cây được sử dụng để mã hóa thông tin có tên là Mã Huffman Xem thêm từ loạt Giải thích thuật toán này. #1. đệ quy, #2. sắp xếp, #3. tìm kiếm, #4. thuật toán tham lam, #5. lập trình động, #6. duyệt cây (bài viết hiện tại) Python có cấu trúc cây không?Lớp Python TreeNode
. Nút trên cùng của cây được gọi là "gốc" và mỗi nút (ngoại trừ nút gốc) được liên kết với một nút cha
Cây thuật toán là gì?Cây trong cấu trúc dữ liệu là gì? . Một nút của cây được kết nối trực tiếp hoặc gián tiếp với mọi nút khác mà không tạo thành một chu trình. a hierarchical, non-linear data structure composed of one or more nodes (or no node at all). One node of a tree is directly or indirectly connected to every other node without forming a cycle.
Thuật toán phân loại cây quyết định trong Python là gì?Thuật toán cây quyết định
. Nút trên cùng trong cây quyết định được gọi là nút gốc
Làm cách nào để triển khai thuật toán cây quyết định trong Python?Xây dựng cây quyết định bằng Python . Đầu tiên, chúng ta sẽ nhập các thư viện cần thiết để xây dựng cây quyết định trong Python Tải tập dữ liệu bằng hàm read_csv() trong pandas Hiển thị năm hàng trên cùng từ tập dữ liệu bằng hàm head() Tách các biến độc lập và phụ thuộc bằng phương pháp cắt |