2012-03-28 37 views
10

Có thư viện java có cây nhị phân mà tôi có thể sử dụng không? Tôi không mong muốn thử nghiệm và thực hiện của riêng tôi.Tìm thư viện java đã triển khai Cây nhị phân

+0

Bạn cần cây nhị phân để làm gì? – Bernard

+4

Về cơ bản java.util.TreeSet là một cây nhị phân màu đỏ-đen, là cây tìm kiếm nhị phân cân bằng. Tùy thuộc vào những gì bạn cần, mặc dù. –

+0

Vâng - cây nhị phân tôi muốn lưu trữ không cần phải cân bằng. Bên cạnh đó, nó không phải là một cây tìm kiếm nhị phân. Tôi đang tìm kiếm việc thực hiện cơ bản trong đó mỗi nút có một con trái và phải. – Esey

Trả lời

9

API chuẩn Java chỉ chứa các thư viện hữu ích trên toàn cầu và không tầm thường để triển khai. Một cây cơ bản là tầm thường để thực hiện:

class BinaryTree { 
    BinaryTree left; 
    BinaryTree right; 
    Object value; 
} 

cây không tầm thường không phổ biến hữu ích: hoặc là họ là cần thiết như một phần của mô hình dữ liệu ứng dụng được mô hình hóa tốt hơn sử dụng các lớp miền cụ thể (thành phần có-một danh sách các thành phần phụ) hoặc chúng được sử dụng như một phần của thuật toán cụ thể. Thuật toán thường yêu cầu cấu trúc cụ thể từ các nút (ví dụ: màu hoặc trọng lượng của nút cần thiết để duy trì cân bằng cây), do đó, nút cây chung chung có ý nghĩa rất ít.

+0

Cảm ơn @Joni - điều đó có ý nghĩa. Tôi đoán là tôi đã cho rằng nó phải có ở đó - nhưng không phải vậy. Tôi sẽ thực hiện nó cho ứng dụng của tôi. – Esey

+0

Bạn có quyền với cây cơ bản, nhưng chắc chắn là một phần của việc triển khai BST không tầm thường, chẳng hạn như tìm kiếm thấp nhất và chèn/xóa (và cân bằng), bạn có nghĩ vậy không? – snydergd

0

Có một thực hiện mẫu trên trang này ở đây: -around ở nửa cuối trang hoặc Somali

http://cslibrary.stanford.edu/110/BinaryTrees.html

+1

Tôi đang tìm một thư viện thử nghiệm. – Esey

+1

@Esey, sau đó tự viết bài kiểm tra ... –

+0

@Bart - Có thể là lần khác :) - Tôi cũng có thể tự thực hiện - nhưng tôi đang triển khai ứng dụng "sử dụng" Cây nhị phân và sẽ đẹp nếu tôi không phải lo lắng về phần khác này. Cảm ơn vi đa trả lơi. – Esey

5

Điều gì về http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html

Thực thi NavigableMap dựa trên cây đỏ-đen. Bản đồ được sắp xếp theo thứ tự tự nhiên thứ tự các khóa của nó hoặc bằng một Trình so sánh được cung cấp tại thời điểm tạo bản đồ, tùy thuộc vào việc sử dụng hàm tạo .

+2

Nó sẽ không có tác dụng đối với tôi. Tôi đang tìm một cây nhị phân cơ bản. – Esey

Các vấn đề liên quan