2011-03-02 39 views
7

Thực hiện cây n-ary hoàn chỉnh nhất cho C++ là gì? Tôi cần thực hiện đơn giản (không phải BGL vui lòng) để sử dụng trong một dự án tương thích với LGPL, do đó, Tree.hh không phù hợp.Thư viện cây C++ n-ary

+1

Yêu cầu của cây là gì? Bạn có thể ném cùng một cây n-ary trong 10 phút nếu các yêu cầu đủ đơn giản. – corsiKa

+0

bạn muốn làm gì với nó? – Andrey

+0

Tôi không muốn dành thời gian để viết một thư viện cây n-ary mới, vì tôi sẽ cần gần như tất cả các phương thức truyền tải. Các yêu cầu là có: http://library.gnome.org/devel/glib/2.28/glib-N-ary-Trees.html, tôi đang nghĩ đến việc sử dụng glib, nhưng tôi đang cố gắng tìm một thứ gì đó thân thiện hơn với C++ . – Tarantula

Trả lời

1

Điều tôi đã khám phá ra từ câu hỏi này, là không có thư viện Tree tương thích đơn giản, tài liệu LGPL nào so sánh với thực thi GLib n-ary Tree. Cuối cùng, tôi đã sử dụng API C từ GLib.

3

Tôi biết bạn nói bạn không muốn, nhưng ... tại sao không ít nhất là bản demo/nguyên mẫu với BGL? Tại tồi tệ nhất bạn đã lãng phí một vài giờ, và lúc tốt nhất bạn nhận ra rằng (đối với trường hợp sử dụng cụ thể của bạn ít nhất) nó không phải là phức tạp như bạn nghĩ nó sẽ được. Phía trên là BGL có khả năng là lựa chọn được thử nghiệm tốt nhất trên mạng.

+3

Tôi thậm chí không thể tìm thấy một ví dụ đơn giản về BGL thực hiện một cây đơn giản, tôi không muốn dành thời gian với một thư viện mà trong đó tôi sẽ sử dụng 10% của nó. – Tarantula

+1

+1 Tôi thứ hai câu trả lời này. @ Tarantula: Tôi đã sử dụng Thư viện Đồ thị Tăng cường cho một số dự án từ năm 2004 đến nay (hiện tại tôi đang sử dụng nó). Tôi đồng ý rằng tài liệu ban đầu là một chút áp đảo và nặng nề trên các lớp học 'khái niệm' và vòng lặp. Nhưng ngoài ra, tôi không đồng ý với bạn: "chỉ sử dụng 10% của nó" là tìm BGL. Nó là một thư viện chỉ tiêu đề, vì vậy nếu bạn không sử dụng một cái gì đó, nó sẽ không đóng góp cho mã bloat. – phooji

1

Tác giả của Tree.hh có vẻ rất cởi mở khi làm việc gì đó theo giấy phép khác với GPL. Tại sao bạn không thả anh ta một dòng và xem nếu anh ta sẽ được mở cho một miễn LGPL?