/>
Процедура обчислення різниці графів з повертаючим значенням послідовного графа:
Array * RaznostZ (int n, int & n1, Array * X, Spisok ** Y, Array * Z)
N - кількість дуг графа
N1 - кількість вершин у графі Х
X - гравер в послідовному поданні
Y - гравер в пов'язаності поданні
Z - гравер в послідовному поданні
O (N, N1) = N1 * N * k = N1 * N2
N2 - кількість вершин у графі Y
В
Процедура обчислення різниці графів з повертаючим значенням послідовного графа:
Spisok * RaznostY (int n, int & n1, Array * X, Spisok ** Y)
N - кількість дуг графа
N1 - кількість вершин у графі Х
X - гравер в послідовному поданні
Y - гравер в пов'язаності поданні
O (N, N1) = N1 * N * (k + l) = N1 * (N3 + N2)
N2 - кількість вершин у графі Y
N3 - кількість вершин у графі Z - возвращаемом. br/>
Процедура введення графів в послідовному поданні:
Spisok ** ReadFileY (Spisok ** Y, char * st)
St - покажчик на рядок з ім'ям файлу з якого буде відбуватися введення
Y - гравер в пов'язаності поданні
O (N, N1) = N + N2
N2 - кількість вершин у графі Y
В
Процедура введення графів в послідовному поданні:
Array * ReadFileY (Array * X, char * st)
St - покажчик на рядок з ім'ям файлу з якого буде відбуватися введення
X - гравер в послідовному поданні
O (N, N1) = N2
N2 - кількість вершин у графі X
Текст програми.
# include
# include
# include
# include
# include
# include
struct Spisok// Пов'язане подання графа
{int index;// Содержвтельная "Осередок"
Spisok * Next;// Следуюцая "дуга"
};
struct Array// Послідовне подання графа
{int I;// з якої вершини
int J;// в яку вершину
};
inline double fun1 (double N_X, double N_Y, double N_Z) {return N_X * (N_Y + N_Z);}
inline double fun2 (double N_X, double N_Y, double N_Z) {return N_X + N_Y;}
inline double fun3 (double N_X, double N_Y, double N_Z) {return N_X;}
inline double fun4 (double N_X, double N_Y, double N_Z) {return N_Y;}
inline double fun5 (double N_X, double N_Y, double N_Z) {return N_Z;}
inline double fun6 (double N_X, double N_Y, double N_Z) {return 1;}
const int N = 6, M = N +1;
double A [N] [M];
double B [N] [M];
typedef double (* MENU1) (double, double, double);
MENU1 MyMenu [...