Pagini recente » Cod sursa (job #181500) | Cod sursa (job #372408) | Cod sursa (job #1903919) | Cod sursa (job #406334) | Cod sursa (job #650745)
Cod sursa(job #650745)
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct node
{int val;
struct node *next;} node;
FILE *f;FILE *h;
node *(list[20]);
node *prim;node *p;
int m,n , s , x , y ,i , j , v[20];
void init()
{ fscanf(f,"%d%d",&n,&m);}
void add( node *(*prim))
{node *nod;
nod=(node *)malloc(sizeof(node));
fscanf(f,"%d",&y);
for (p=(*prim); p->next!=NULL;p=p->next){;}
p->next=nod;
}
node *nod;
void creare()
{while(fscanf(f,"%d",&x))
add(&list[x]);
fclose(f);}
node *prim1;
void addback(node *(*prim1))
{node *nod;
nod=(node *)malloc(sizeof(node));
for(p=(*prim1); p->next!=NULL; p=p->next);
nod->val=i;}
void elim(node *(*prim1))
{node *p;
for(p=(*prim1);p->next!=NULL;p=p->next)
free(p);}
void crearee()
{i=s;
addback(&list[s]);v[s]=0;
while(list[s]->next!=NULL)
{i=list[s]->next->val;
if(v[i]==-1)
{addback(&list[s]->next);v[i]=v[list[s]->val]+1;}
list[s]->next=list[s]->next->next;
}}
int main()
{f=fopen("bfs.in","r");
h=fopen("bfs.out","w");
if (!f)
{printf("eroare . fisier inexistent"); return 1;}
init();
fscanf(f,"%d",&s);
creare();
for (i=1;i<=n;i++)
v[i]=-1;
crearee();
for(i=1;i<=n;i++)
fprintf(h,"%d ",v[i]);
free(nod);
return 0;}