IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> работа с графом, на Си
сообщение
Сообщение #1


Гость






Помогите пожалуйста разобраться. Есть следующий код, который получает матрицу смежности и выводит в ней все пути. Вот препод задал теперь сделать из этого прогу которая будет выводить все пути непосредственно полного обхода дерева, что то типо без повторения вершин и назвал это кажется гильбертовым циклом..если кому то это о чём то говорит помогите выполнить это задание на основе моего исходника.


Цитата
#include <stdio.h>
#include <memory.h>
#include <malloc.h>
#define MAXBUF 16


int getcoord(int x, int y, int m_sz){


return (m_sz*y)+x;
}

int f_match(char* dots,int dot,int r){
int i=0;
for (;i<r;i++){
if (dots[i]==dot) return 1;
}
return 0;
}
void f_next(const int c_dot,const int sz_m,const char* adj_matr,char* vis,int aux){

int i=0;
int crd;

vis[aux]=c_dot+48;
vis[sz_m]=0;

if (aux>0) printf("%s\n",vis);
while (i<sz_m){

crd=getcoord(i,c_dot,sz_m);


if ((adj_matr[crd]=='1')&&(f_match(vis,i+48,sz_m)==0)) {

f_next(i,sz_m,adj_matr,vis,aux+1);
}


i+=1;

}
vis[aux]=0;
}

int main(int arc, char **argv){
char *matr;
char *vis;
int sz_m=0;
char buff[MAXBUF];
FILE* fh;
int i=0;
fh = fopen("input.txt","r");

fgets(buff,MAXBUF,fh);
sz_m=atoi(buff);

matr=(char*)malloc(sizeof(char)*sz_m*sz_m);
vis = (char*)malloc(sizeof(char)*sz_m);

bzero(matr,sz_m*sz_m);


for (;i<sz_m;i++){
fgets(buff,MAXBUF,fh);
memcpy(&matr[sz_m*i],buff,sz_m);
bzero(buff,MAXBUF);
}

fclose(fh);

for(i=0;i<sz_m;i++){
bzero(vis,sz_m);
f_next(i,sz_m,matr,vis,0);
}
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






извините цикл гамильтонов
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 19:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name