Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 116 стр.

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
// поиск смежных вершин с v-ой
for(j=jj+1;j<g.n;j++)
if(x[j]==0 && g.a[v][j]>0
&& g.a[v][j]!= MAX_INT)
{
// найдена смежная вершина j
x[j]=k; // вершина включается в путь,
//добавляется длина дуги <v,j>
sum+=g.a[v][j];
if(j==b)
{
// если найдена конечная вершина пути
// печатаем найденный путь
nom=1;
while(true)
{
for(ii=0;ii<g.n;ii++)
if(x[ii]==nom)
{
printf("%d",ii+1);
break;
}
if(ii==t)
{
printf("sum=%d\n",sum);
break;
}
printf("->");
nom++;
}
// осуществляем возврат в предыдущую
// вершину, т.е. снимаем пометку с
// j-ой вершины и вычитаем длину
// ребра <v,j> из длины пути
x[j]=0;
sum-=g.a[v][j];
}
else
{
// конечная вершина не достигнута
// помещаем вершину v в стек,
// запоминаем найденную смежную
// вершину в jj
k++;
PushStack(st,v);
116
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова                  .
                   // поиск смежных вершин с v-ой
                   for(j=jj+1;j0
                                  && g.a[v][j]!= MAX_INT)
                        {
                             // найдена смежная вершина j
                             x[j]=k; // вершина включается в путь,
                             //добавляется длина дуги 
                             sum+=g.a[v][j];
                             if(j==b)
                             {
                                  // если найдена конечная вершина пути
                                  // печатаем найденный путь
                                  nom=1;
                                  while(true)
                                  {
                                       for(ii=0;ii");
                                       nom++;
                                  }
                                  // осуществляем возврат в предыдущую
                                  // вершину, т.е. снимаем пометку с
                                  // j-ой вершины и вычитаем длину
                                  // ребра  из длины пути
                                  x[j]=0;
                                  sum-=g.a[v][j];
                             }
                             else
                             {
                                  // конечная вершина не достигнута
                                  // помещаем вершину v в стек,
                                  // запоминаем найденную смежную
                                  // вершину в jj
                                  k++;
                                  PushStack(st,v);

                                           116