Контрольная работа: Моделирование систем
}
int Spisok::Pusto_Q (int *Q)
{
for (int i=0;i<MaxNodes;i++)
if ( *(Q+i)!=0 ) return 0; //Ложь - непусто!
return 1; //Истина - пусто!
}
void Spisok::Reshenie ()
{
int S; // Начальная вершина пути (источник).
int T; // Конечная вершина пути.
int u,v,Min;
int i,j,k;
svqz UkZv;
int Q[MaxNodes];
cout << "input source : ";
cin >> S; S--;
//Инициализация.
for (i=0;i<MaxNodes;i++) { D[i] = A[S][i]; Q[i] = 0; }
D[S] = 0;
for (i=0;i<MaxNodes;i++) Q[i] = 1;
Q[S] = 0;
//Вычисление матрицы расстояний от
//источника до всех вершин графа.
while (!Pusto_Q(&Q[0])) //Пока Q не пусто.
{
Min = B;
for (i=0;i<MaxNodes;i++)
if (Q[i]==1 && D[i]<Min) { Min = D[i]; u = i; }