|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.12.2011, 08:08 | #1 |
Новичок
Джуниор
Регистрация: 08.12.2011
Сообщений: 1
|
алгоритм краскала
помогите найти ошибку! алгоритм краскала
#include <stdio.h> #include <stdlib.h> struct Q{ int ves; int x; int y; struct Q *next; }; struct Q *add_in_Q(struct Q *kur, int ves, int in, int out) { struct Q *nov=(Q*)malloc(sizeof(Q)); nov->x=in; nov->y=out; nov->ves=ves; nov->next=NULL; if (kur==NULL) { kur=nov; } else { kur->next=nov; kur=kur->next; } free(nov); return kur; } struct Q *min(struct Q *kur,int **m,int k) { int min, i,j, in, out; min=m[0][0]; for(i=0;i<k;i++) { for (j=0; j<k; j++) { if (m[i][j]<min) { min=m[i][j]; in=i; out=j; } } } m[in][out]=m[out][in]=999; kur=add_in_Q(kur,min, in,out); return kur; } int prov(int**m, int k) { int i,j; for (i=0; i<k; i++) { for (j=0; j<k; j++) { if (m[i][j]!=999) return 1; } } return 0; } int main(void) { int n,i,r=0,j; int ves; int **A; struct Q *Q_head=NULL;//ukazatel na head ocheredi struct Q *kur=NULL; FILE *f=fopen("input.txt","r"); fscanf(f,"%i",&n); A=(int**)malloc(sizeof(int)*n); for(i=0;i<n;i++) { A[i]=(int*)malloc(sizeof(int)*n); for(j=0;j<n;j++) { A[i][j]=999; } } while(!feof(f)) { fscanf(f,"%i%i%i",&i,&j,&ves); A[i][j]=ves; A[j][i]=ves; } fclose(f); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%4i",A[i][j]); } printf("\n"); } while (prov(*&A,n)!=0) { if (Q_head==NULL) { Q_head=min(Q_head,*&A,n); kur=Q_head; } else kur=min(kur,*&A,n); } scanf("%i",&i); kur=Q_head; while(kur!=NULL) { printf("%i-%i=%i\n",kur->x,kur->y,kur->ves); kur=kur->next; } scanf("%i",&i); return 0; } |
08.12.2011, 22:30 | #2 |
Новичок
Джуниор
Регистрация: 08.12.2011
Сообщений: 1
|
привет мгврк
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм Краскала | Klik_1602 | Помощь студентам | 1 | 21.06.2011 15:59 |
прима-краскала | salwator | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 03.06.2011 22:17 |
алгоритм краскала | Олександр17 | Помощь студентам | 0 | 02.12.2010 19:59 |
Как проверить граф на связанность? Алгоритм Краскала | PasSuper | Общие вопросы C/C++ | 10 | 18.01.2010 10:13 |
Алгоритм Краскала | anGeee | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 17.12.2008 18:16 |