Код: Выделить всё
{
1: [2, 3, 4],
2: [5],
3: [6, 9],
4: [3],
5: [3],
6: [7, 8],
7: [],
8: [],
9: []
}
Но каждый из них также отличается ", что это" тип ", что это" тип ", что это" тип ". Иерархия, присутствующая в списке смежности выше. Например, это сообщило бы нам, что «узел 6 имеет тип« ba », а все узлы типа« ba »типа 'b'». < /P>
Например, рассмотрим это происхождение: < /p>
Код: Выделить всё
{
1: [], # no ancestry
2: ['AA', 'A'], # Read this as "2 is a type AA node, and all type AA nodes are type A nodes"
3: ['B'], # 3 is directly under type B
4: [],
5: ['AA', 'A'],
6: ['BA', 'B'],
7: ['BA', 'B'],
8: ['BA', 'B'],
9: ['BB', 'B']
}
Однако, если мы не подходящими, что мы используем. Репрезентативные типы узлов будут узлами чуть ниже самого низкого общего предка их предков. При визуализировании с помощью этой настройки было бы похоже на это
Так что я хочу создавать, что я буду создавать, как это будет подумать, как это будет показано, что это будет позади, что я буду создавать, как это будет изобразить. Основная идея состоит в том, чтобы представить поддерев для каждого ключа в списке смежности (вместе с полем «/код»), которое, в свою очередь, будет содержать свой собственный список смежности и т. Д. (Рекурсивно).
Код: Выделить всё
{1: {'edges': ['A', 'B', 4], 'subgraphs': {}},
4: {'edges': ['B'], 'subgraphs': {}},
'A': {'edges': ['B'],
'subgraphs': {'AA': {'edges': [],
'subgraphs': {2: {'edges': [5], 'subgraphs': {}},
5: {'edges': [], 'subgraphs': {}}}}}},
'B': {'edges': [],
'subgraphs': {3: {'edges': ['BA', 'BB'], 'subgraphs': {}},
'BA': {'edges': [],
'subgraphs': {6: {'edges': [7, 8], 'subgraphs': {}},
7: {'edges': [], 'subgraphs': {}},
8: {'edges': [], 'subgraphs': {}}}},
'BB': {'edges': [],
'subgraphs': {9: {'edges': [], 'subgraphs': {}}}}}}}
Подробнее здесь: https://stackoverflow.com/questions/795 ... -hierarchy