Программа для определения числа плотности (клик) графа, без дуг. Реализует на языке Си, алгоритм, студента МЕСИ Шеломанова Р.. Ознакомиться с алгоритмом можно
тут. Сорцы проги валяются
здесь.
Скажу сразу, препод простил нам за эту программу, курсач ;) , а после того, как мы найдём, и реализуем программно, алгоритм для поиска числа компонент связности графа, поставит и экзамен автоматом.. Кстати, алгоритм на Си++ и Паскале есть на диске ][акер 10.06 (94).
А вот Рабочая Лошадка (функция, определяющая какие строки нужно переставлять), со всеми необходимыми комментариями:
int remove_(int ms[], int size, int s, int k) { /*ms - исходный массив, size - размерность*/
/*s - номер строки в которой зафиксировано наибольшее кол-во совпадений, k - кол-во этих совпадений*/
/*s & k желательно сделать глабальными переменными*/
int c, d, e, f, boolean, mh[MAX];
n = 3; d = 0; /*начинаю с третьего элемента и далше по нарастающей т.к. 1-й элемент это номер
строки(столбца) 2-й - это элемент главной диаконали*/
for(i = 1; i < size; i++) { /* проходим по строкам */
c = 0; j = n;
while(j < size) {
if(ms[i][j] == 1) { /* находим еденицу в строке */
mh[c] = j; c++; /* записываем номер столбца */
while(j < size) { /* продожаем искать еденицы в строке */
if(ms[i][j] == 1) { /* если находим проверяем адреса на
наличие едениц*/
boolean = 1; f = 0;
while((f < c) & (boolean != 0)) {
if(ms[j][mh[f]] != 1) {
boolean = 0;
}
f++;
}
if(boolean != 0) { /* если по адресам еденицы записываем
адрес столбца */
mh[c] = j;
c++;
}
} /* и продолжаем поиски едениц в строке*/
j++;
}
}
j++;
}
n++; /* наращиваем, что бы идти вдоль глвной диагонали */
if(c > d) { /*если в данной строке столбцов записано больше, значит
пишем их в массив*/
d = c; k = c; s = i;
for(e = 0; e < c; e++) {
m[e] = mh[e];
}
}
}
return m; /*фугкция возвращает массив, в котором указаны номера переставляемых строк(столбцов) */
/*если не будете испльзовать переменную k, то массив желательно обнулить ;) */
}
Юзайте на здоровье. Прога сырая, так что если чего уберёте лишнее сообщайте, если добавите функционал тоже ;)