Advertisement
thienlang

hamiton tren euler

Nov 27th, 2013
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. //Hàm triễn khai thuật toán
  2. bool Euler::EulerAlg(string namefile)
  3. {
  4.     int i = 0;//bắt đầu tìm kiếm với đỉnh số 0
  5.     do{
  6.         Vertex.clear();//khởi tạo vector
  7.         //đọc đồ thị
  8.         if ( !Read_File(namefile))
  9.             return false;
  10.         Find_tour(i);//tìm kiếm
  11.         i++;
  12.     }
  13.     while (!Search_Vertex());//thực hiện lại khi số đỉnh tìm kiếm không đủ
  14.     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ả
  15.         return false;
  16.     return true;
  17. }
  18.  
  19. //tìm kiếm số đỉnh thỏa yêu cầu
  20. void Euler::Find_tour( int u)
  21. {
  22.     //với mỗi đỉnh trong ma Trận
  23.     for ( int i = 0; i < nVer(); i++)
  24.     {
  25.         if ( MaTran[u][i] > 0)//nếu có cạnh (u i)
  26.         {
  27.             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ị
  28.             {
  29.                 MaTran[u][j] = 0;
  30.                 MaTran[j][u] = 0;
  31.             }
  32.             Find_tour(i);//tìm kiếm tiếp tục theo đỉnh i
  33.         }
  34.     }
  35.     //đưa đỉnh u vào vector
  36.     Vertex.push_back(u);
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement