Xin chào các bác, em đang học về đồ thị, thầy giáo bắt em phải code lại thuật toán DFS bằng Ma trận kề, danh sách cạnh.
Dưới đây là bài em đã làm, các bác kiểm tra lại hộ em.
DFS - Ma trận kề:
C Code:
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <malloc.h> #define Max 50 int A[50][50],n,i,j,chuaxet[50],u; FILE *fp1, *fp2; void creat_matrix(void) { for(i=1;i<=n;i++) {for(j=1;j<=n;j++) } } } void in_matrix(void) for( i=1;i<=n;i++) {for(j=1;j<=n;j++) } } } void DFS(int u) for(int i=1;i<=n;i++) if (( A[u][i]) && (chuaxet[i])) DFS(i); } void duyet(void) {// khoi tao mang chuaxet for(int i=1;i<=n;i++) chuaxet[i]=1; DFS(u); for(i=1;i<=n;i++) if ( chuaxet[i]) DFS(i); } void main(void) { clrscr(); creat_matrix(); in_matrix(); duyet(); getch(); }
DFS - Danh sách cạnh:
Bây giờ em phải làm BFS bằng Ma trận kề và danh sách cạnh, nhưng em làm mãi ko ra,mong các bác giúp đỡ.C Code:
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <malloc.h> #define Max 50 int A[50][50],n,m,i,j,k1,k2,chuaxet[50],u; FILE *fp1, *fp2; void create_DSC(void) { for(i=1;i<=m;i++) } } void in_DS(void) { // Doc tep chua Danh sach canh int k; for(i=1;i<=m;i++) } } void DFS(int u) for(i=1;i<=n;i++) for(i=1;i<=m;i++) if (( k1==u)&&(chuaxet[k2])) DFS(k2); else if((k2==u)&&(chuaxet[k1])) DFS(k1); } } void duyet(void) {//khoi tao mang chuaxet for(i=1;i<=n;i++) chuaxet[i]=1; DFS(u); for(i=1;i<=n;i++) if ( chuaxet[i]) DFS(i); } void main(void) { clrscr(); create_DSC(); in_DS(); duyet(); getch(); }
I'm meo hoang!!!!!
ủa, ko có ai giúp bài này à, đưa lên lâu lắm rồi,chán
I'm meo hoang!!!!!