На этой неделе я выполнил эту домашнюю работу: посчитал оценку узлов в неориентированном графе и проверил, есть ли в нем путь Эйлера.функция должна работать следующим образом:
gradliste([[a,b],[b,c],[b,g],[c,d],[d,e],[e,f],[f,g],[g,h],[c,f]],X).
X = [[a, 1], [b, 3], [c, 3], [g, 3], [d, 2], [e, 2], [f, 3], [h, 1]]
testEulerweg([[a,b],[b,c],[c,d],[d,e],[a,e],[b,d],[b,e],[a,d]]).
true.
Моя первая идея функции gradliste
состоит в том, чтобы «объединить» график и сгенерировать список, подобный этому: [a,b,b,c,b,g,c,d,d,e,e,f,f,g,g,h,c,f]
, тогда я подсчитываю числа каждого узла.к сожалению, я остановился на merge
.
и для второй функции testEulerweg
Я думаю, что сначала я должен написать функцию allconnected
, работающую следующим образом:
allconnected([[a,b],[b,c],[c,d]]).
true.
allconnected([[a,b],[b,c],[e,f]]).
False.
, затем я могупроверьте, нет ли ни одного или двух узлов с нечетным номером оценки, используя функцию gradliste
.
Может кто-нибудь помочь мне с моей идеей?Я также открыт для новых идей:)
заранее спасибо
bearzk