1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỀ 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 (13)

3 476 2

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 26 KB

Nội dung

Trang 1

M¹nh D¬ng Biªn So¹n

Bé M«n CÊu Tróc D÷ LiÖu

Gi¶i ThuËt 2012

§ª Sè 13 Trong Bé §Ò ¤n TËp

#include<iostream.h>

#include<conio.h>

#include<fstream.h>

ifstream datain("C:/cau truc du lieu/dethi/dothi13.in.txt");

/*

Kiem tra mot do thi co phai Nua Euler khong

phai thi in ra duong di nao do

De la do thi nua euler

thi do thi la Lien thong Yeu

Moi V thuoc G co bac vao chenh lech bac ra la 1 don vi khong vuot qua 2

*/

int a[100][100],n,x[100];

void DFS(int i)

{

x[i]=1;

for(int j=1;j<=n;j++)

if(a[i][j]==1&&x[j]==0)DFS(j);

}

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;}

}

}

int LienThong()

{

for(int i=1;i<=n;i++)

x[i]=0;

DFS(1);

for(int i=1;i<=n;i++)

if(x[i]==0)return 0;

return 1;

Trang 2

void NhapDL(int &n)

{

datain>>n;

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

datain>>a[i][j];

}

void NuaEuler(int aa[][100],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;

break;

} if(j==0) {

k++;

ce[k]=h;

t ;

} }

for(i=k;i>1;i )

cout<<ce[i]<<" - ";

cout<<ce[1]<<endl;

}

main()

{

int d[100];

NhapDL(n);

Trang 3

cout<<"Khong Ton Tai Duong di Euler"<<endl; else {NuaEuler(a,d);}

}

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

w