Я решил подобную проблему к этому недавно вместо всех решений, я только интересовался самым коротким.
я использовал повторяющийся поиск 'в ширину', который использовал очередь состояния, каждый из которых содержал запись, содержащую текущую точку на графике и пути, взятом для получения там.
Вы запускаете с единственной записи в очереди, которая имеет стартовый узел и пустой путь.
Каждое повторение через код берет объект от заголовка списка и проверки, чтобы видеть, является ли это решение (узел прибыл в, тот, который Вы хотите, если это, мы сделаны), иначе, это создает новый объект очереди с узлами, соединяющимися с текущим узлом и исправленными путями, которые основаны на пути предыдущего узла с новым переходом, присоединенным в конце.
Теперь, Вы могли использовать что-то подобное, но когда Вы находите, что решение, вместо остановки, добавляет, что решение Вашего 'найденного списка' и продолжается.
необходимо отслеживать посещаемый список узлов, так, чтобы Вы никогда не отслеживали в обратном порядке на себе иначе, у Вас есть бесконечный цикл.
, если Вы хотите немного больше псевдокода, добавляют комментарий или что-то, и я уточню.
Для пользовательских всплывающих подсказок добавьте всплывающую подсказку в качестве дополнительного столбца:
function drawVisualization() {
data = new google.visualization.DataTable()
data.addColumn('string', 'Date');
data.addColumn('number');
data.addColumn({type:'string',role:'tooltip'});
data.addRow();
base = 10;
data.setValue(0, 0, 'Datapoint1');
data.setValue(0, 1, base++);
data.setValue(0, 2, " This is my tooltip1 ");
data.addRow();
data.setValue(1, 0, 'Datapoint2');
data.setValue(1, 1, base++);
data.setValue(1, 2, "This is my second tooltip2");
// Draw the chart.
var chart = new google.visualization.BarChart(document.getElementById('visualization'));
chart.draw(data, {legend:'none', width:600, height:400});
}