Как написать код для расчета кратчайшего пути в схеме с расстояниями?

Рейтинг: 0Ответов: 0Опубликовано: 31.01.2023

Только начал изучать JS и программирование вообще, пытаюсь написать код который будет искать в схеме кратчайший путь от a до с. Столкнулся с двумя проблемами:

  1. как сделать, чтобы код адекватно работал если везде будут одинаковые расстояния?
  2. если получилось сразу несколько кратчайших путей, как сделать чтобы их все можно было увидеть?

function raschetPuti(ab, bc, cd, da, ac, bd) {
    let korotki1
    let korotki2
    let korotki3
    let korotki4
    let korotki5
    const ba = ab
    const cb = bc
    const dc = cd
    const ad = da
    const ca = ac
    const db = bd
    if (ab < ad && ab < ac) {
       if (bd < bc) {
          const korotki1 = ab + bd + dc
           console.log('кратчайший путь a-b-d-c длиной', korotki1)
       }
        else {
            const korotki2 = ab + bc
            console.log('кратчайший путь a-b-c длиной', korotki2)
        }
    }
    else if (ac < ab && ac < ad) {
        const korotki3 = ac
        console.log('кратчайший путь a-c длиной', korotki3)
    }
    else if (ad < ac && ad < ab) {
        if (db < dc) {
            const korotki4 = ad+db+bc 
            console.log('кратчайший путь a-d-b-c длиной', korotki4)
        }
        else {
            const korotki5 = ad + dc
            console.log('кратчайший путь a-d-c длиной', korotki5)
        }
    }
    else {
        console.log('не нашел')
    }
}

введите сюда описание изображения

function raschetPuti(ab, bc, cd, da, ac, bd) {
    let korotki1
    let korotki2
    let korotki3
    let korotki4
    let korotki5
    const ba = ab
    const cb = bc
    const dc = cd
    const ad = da
    const ca = ac
    const db = bd
    if (ab < ad && ab < ac) {
       if (bd < bc) {
          const korotki1 = ab + bd + dc
           console.log('кратчайший путь a-b-d-c длиной', korotki1)
       }
        else {
            const korotki2 = ab + bc
            console.log('кратчайший путь a-b-c длиной', korotki2)
        }
    }
    else if (ac < ab && ac < ad) {
        const korotki3 = ac
        console.log('кратчайший путь a-c длиной', korotki3)
    }
    else if (ad < ac && ad < ab) {
        if (db < dc) {
            const korotki4 = ad+db+bc 
            console.log('кратчайший путь a-d-b-c длиной', korotki4)
        }
        else {
            const korotki5 = ad + dc
            console.log('кратчайший путь a-d-c длиной', korotki5)
        }
    }
    else {
        console.log('не нашел')
    }
}

Ответы

Ответов пока нет.