Trong python Tôi đã điều sau đây:Tạo trong C#, C++ và Java một phiên bản đánh máy mạnh mẽ của một con trăn cấu trúc gõ yếu
graph = {}
graph[1] = {}
graph[2] = {}
graph[3] = {}
graph[1][3] = graph[3]
graph[2][1] = graph[1]
graph[2][3] = graph[3]
graph[3][2] = graph[2]
này là một cấu trúc để đại diện cho một đồ thị và mà tôi tìm thấy thoải mái bởi vì cấu trúc của nó giống như một trong các nút của nó vì vậy tôi có thể sử dụng nó trực tiếp để bắt đầu tìm kiếm (như trong chiều sâu đầu tiên). Phiên bản in của nó là:
{1: {3: {2: {1: {...}, 3: {...}}}}, 2: {1: {3: {2: {...}}}, 3: {2: {...}}}, 3: {
2: {1: {3: {...}}, 3: {...}}}}
Và nó có thể được sử dụng như:
graph[1][3][2][3][2][1][3][2][1][3][2].keys()
Bây giờ, tôi tò mò muốn biết làm thế nào người ta sẽ thực hiện nó trong C++, C# và Java mà không cần đến "Đối tượng" thủ thuật sẽ điền mã với các phôi xấu xí. Đối với C++ Tôi đã suy nghĩ trong templatemeta lập trình nhưng điều đó sẽ tạo ra "các kiểu dữ liệu hữu hạn" khi những gì cần thiết là một cái gì đó giống như
map<int,map<int,...>> or map<int,...>
Bạn có thể thử [cppscript] (http://calumgrant.net/cppscript/). –