я попытаюсь ответить, но с некоторыми соображениями в виду:
Прежде всего непосредственно ответить на ваш вопрос о том, можно ли использовать XML DOM дерево, чтобы представить эту проблему? - Да, было бы возможно, но, на мой взгляд, использование дерева XML DOM для представления структуры данных не так естественно (на самом деле я мог бы также назвать это излишним), если вы не хотите сериализовать эту структуру данных на диск или через сети в результате вызова API.
Примеры присутствуют здесь: http://dom4j.sourceforge.net/dom4j-1.6.1/guide.html
Очиститель и более простой альтернативой было бы определить Node
класс, как показано ниже:
class Node
{
int value; //assuming the node holds an integer value
List<Node> childNodes; // these are the N child nodes.
}
Ваш алгоритм игры может затем перебирать список дочерних узлов в выполнить его вычислительную логику.
Одним из ограничений, которые могут возникнуть в соответствии с вышеприведенным определением, является то, что в случае, если вы хотите найти определенный дочерний узел, вам необходимо выполнить итерацию по списку - в то время как если вы используете DOM4j, вы можете использовать XPath. Но использование DOM и XPath имеет свои ограничения в отношении потребления памяти - подробности см. В this.
Упрощенная структура данных, упомянутая выше, не будет иметь одинаковых последствий для памяти - также было бы легче манипулировать структурой данных во время процесса вычисления.
Надеюсь, это поможет.
Спасибо за ваш ответ. Но с Dom Tree мы можем выполнить Первый поиск по ширине? – CrackerGen
Я не так хорошо разбираюсь в дереве DOM, но тогда BFS - это алгоритм, и с деревом DOM это означало бы enuerating непосредственных дочерних узлов узла и их обработку –