Как я обнаруживаю круговую логику или рекурсию в ссылки мультиуровней и зависимости

Можно программно получить изображение и проверить размеры с помощью JavaScript...

var img = new Image();
img.onload = function() {
  alert(this.width + 'x' + this.height);
}
img.src = 'http://www.google.com/intl/en_ALL/images/logo.gif';

Это может быть полезно, если изображение не является частью разметки.

12
задан LuigleDR 28 August 2009 в 19:37
поделиться

2 ответа

Топологическая сортировка . Описание в Википедии ясное и работает для всех ваших примеров.

Обычно вы начинаете с узла, у которого нет зависимостей, помещаете его в список отсортированных узлов, а затем удаляете эту зависимость из каждого узла. Для вашего второго примера это означает, что вы начинаете с 1. После удаления всех зависимостей от 1 у вас остается 2. В конечном итоге вы сортируете их 1,2,3,4,5 и видите, что цикла нет.

В третьем примере каждый узел имеет зависимость, поэтому начинать некуда. Такой граф должен содержать хотя бы один цикл.

13
ответ дан 2 December 2019 в 19:55
поделиться

Вести список однозначно идентифицированных узлов. Попробуйте выполнить цикл по всему дереву, но продолжайте проверять узлы в списке, пока не получите узел, называемый дочерним, который уже присутствует в уникальном списке - возьмите его оттуда (обработайте цикл или просто игнорируйте это в зависимости от ваших требований)

4
ответ дан 2 December 2019 в 19:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: