Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Hàm triễn khai thuật toán
- bool Euler::EulerAlg(string namefile)
- {
- int i = 0;//bắt đầu tìm kiếm với đỉnh số 0
- do{
- Vertex.clear();//khởi tạo vector
- //đọc đồ thị
- if ( !Read_File(namefile))
- return false;
- Find_tour(i);//tìm kiếm
- i++;
- }
- while (!Search_Vertex());//thực hiện lại khi số đỉnh tìm kiếm không đủ
- if ( i == nVer())//nếu vượt quá giới hạn thì tức là không tìm thấy kết quả
- return false;
- return true;
- }
- //tìm kiếm số đỉnh thỏa yêu cầu
- void Euler::Find_tour( int u)
- {
- //với mỗi đỉnh trong ma Trận
- for ( int i = 0; i < nVer(); i++)
- {
- if ( MaTran[u][i] > 0)//nếu có cạnh (u i)
- {
- for ( int j = 0; j < nVer(); j++)//xóa toàn bộ các cạnh lên quan tới u ra khỏi đồ thị
- {
- MaTran[u][j] = 0;
- MaTran[j][u] = 0;
- }
- Find_tour(i);//tìm kiếm tiếp tục theo đỉnh i
- }
- }
- //đưa đỉnh u vào vector
- Vertex.push_back(u);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement