ĐỀ THI MÔN Cấu Trúc Dữ Liệu và Giải Thuật học viện công nghệ bưu chính viễn thông (14)

3 348 2
ĐỀ THI MÔN Cấu Trúc Dữ Liệu và Giải Thuật học viện công nghệ bưu chính viễn thông (14)

Đang tải... (xem toàn văn)

Thông tin tài liệu

M¹nh D¬ng Biªn So¹n Bé M«n CÊu Tróc D÷ LiÖu Gi¶i ThuËt 2012 §ª Sè 14 Trong Bé §Ò ¤n TËp #include<iostream.h> #include<conio.h> #include<fstream.h> #include<math.h> ifstream Tepvao("C:/cau truc du lieu/dethi/dothi14.in.txt"); int n,a[100][100],x[100]; /* Chu Trinh Euler Do Thi Vo Huong Nua Euler */ void NhapDL(int &n) { Tepvao>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) Tepvao>>a[i][j]; } void DFS(int i) { x[i]=1; for(int j=1;j<=n;j++) if(x[j]==0&&a[i][j]==1)DFS(j); } int LienThong() { DFS(1); for(int i=1;i<=n;i++) if(x[i]==0)return 0; return 1; } int Bac() { int deg,i,j,dem=0,l; for(i=1;i<=n;i++) { deg=0; for(int j=1;j<=n;j++) deg+=a[i][j]; if(deg%2){dem++;l=i;} } if(dem>2) return 0; return l; } void CTNuaEuler(int ce[]) { int l; for(l=1;l<=n;l++) { int deg=0; for(int i=1;i<=n;i++) if(deg+=a[i][l]); if(deg%2) break; } int st[100*100],i,j,h,k,t; t=1; st[t]=l; k=0; while(t>0) { h=st[t]; j=0; for(i=1;i<=n;i++) if(a[h][i]==1) { t++; st[t]=i; j=i; a[h][i]=0; a[i][h]=0; break; } if(j==0) { k++; ce[k]=h; t ; } } for(i=k;i>1;i ) cout<<ce[i]<<" - "; cout<<ce[1]<<endl; } main() { int ce[100]; NhapDL(n); if(LienThong()==0||Bac()==0) cout<<"G khong la do thi Euler"<<endl; else CTNuaEuler(ce); } . TËp #include<iostream.h> #include<conio.h> #include<fstream.h> #include<math.h> ifstream Tepvao("C:/cau truc du lieu/dethi/dothi14.in.txt"); int n,a[100][100],x[100]; /* Chu Trinh Euler Do Thi Vo Huong Nua Euler */ void NhapDL(int &n) { Tepvao>>n; for(int. "; cout<<ce[1]<<endl; } main() { int ce[100]; NhapDL(n); if(LienThong()==0||Bac()==0) cout<<"G khong la do thi Euler"<<endl; else CTNuaEuler(ce); }

Ngày đăng: 27/07/2015, 08:28

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan