Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

cau truc du lieu_bvquynh

//Bai 1

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<stdlib.h>

#include<fstream.h>

#define MAX 100 

//

int n;

int a[100][100],chuaxet[MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi.txt");

 f1>>n;

 cout<<"

"<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  } 

 cout<<"

"; 

 }

}

//

void matranvohuong(){

 int s[MAX][MAX];

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

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

   s[i][j]=0;

  }

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

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

   if(a[i][j]==1){

    s[i][j] = s[j][i] = 1; 

   }    

  }    

 }

 cout<<"Ma tran ke cua do thi vo huong nen:

";

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

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

   cout<<s[i][j]<<" ";

  }

 cout<<"

"; 

 }

}

//

void DFS(int u){

 cout<<u<<" "; 

 chuaxet[u] = 0;  //dinh u cho la da xet

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

  if((a[u][i])== 1 && (chuaxet[i]== 1))   //neu co duong tu u den i ma i chua xet

   DFS(i);        // thi duyet dfs dinh i

}

//

void Duyetdinh_DFS(int u){

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

  chuaxet[i] = 1;   //cho tat ca cac dinh la chua xet

 DFS(u);    //bat dau duyet DFS tu dinh u

}

//

void bacvohuong(){

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

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

   if(a[i][j]==1) a[j][i]=1;

 cout<<"

Bac cac dinh cua do thi:

";

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

  int bac=0;

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

   bac+=a[i][j];

  cout<<"Bac cua dinh "<<i<<" "<<bac<<"

";

 }

}

//

int kiemtralienthong(){

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

  chuaxet[i]=1;

 DFS(1);

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

  if(chuaxet[i]==1) return 0;  //sau khi duyet tu 1 dinh ma van con dinh chua duyet thi

 return 1;        //chung to ko co duong di tu dinh dinh 1 den dinh do

}

//

int kiemtrabacchan(){

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

  int bac=0;

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

   bac+=a[i][j];

  if(bac%2==1) return 0;

 }

 return 1;

}

//

void kiemtraEuler(){

 if(kiemtralienthong()){

  cout<<"

Do thi lien thong !";

  if(kiemtrabacchan())

   cout<<"

Do thi co chu trinh Euler";

  else

   cout<<"

Do thi khong co chu trinh Euler do co dinh bac le

";

 }

 else{

  cout<<"

Do thi khong lien thong -> khong co chu trinh Euler";

 }

}

//

int main(){

 docdulieu();

 matranvohuong();

 int u;

 cout<<"

Nhap u = ";

 cin>>u;

 cout<<"Duyet DFS tu dinh "<<u<<" : ";

 Duyetdinh_DFS(u);

 bacvohuong();

 kiemtraEuler();

}

//Bai 2

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<stdlib.h>

#include<fstream.h>

#define MAX 100 

#include "queue.cpp""

//

int n;

int a[MAX][MAX],chuaxet[MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi.txt");

 f1>>n;

 cout<<"

"<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  }

  cout<<"

"; 

 }

}

//

void matranvohuong(){

 int s[MAX][MAX];

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

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

   s[i][j]=0;

  }

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

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

   if(a[i][j]==1){

    s[i][j] = s[j][i] = 1; 

   }    

  }    

 }

 cout<<"Ma tran ke cua do thi vo huong nen:

";

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

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

   cout<<s[i][j]<<" ";

  }

 cout<<"

"; 

 }

}

//

void Duyetdinh_BFS(int u){

 queue q;

 Init(&q);

 Push(&q,u); //duyet tu dinh u

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

  chuaxet[i] = 1;

 } 

 while(!IsEmpty(&q)){

  int k = Get(&q);  //tham phan tu dau tien cua queue

  cout<<" "<<k;

  chuaxet[k]=0; //gan la da xet

  for(int i=1;i<=n;i++){     //duyet ma tran xem k noi voi dinh nao

   if(a[k][i]==1 && chuaxet[i]==1){   //neu dinh do chua xet

    Push(&q,i);                   //thi day vao queue

    chuaxet[i]=0;    //va gan dinh do da xet

   }

  }

 }

}

//

void bacvohuong(){

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

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

   if(a[i][j]==1) a[j][i]=1;

 cout<<"

Bac cac dinh cua do thi:

";

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

  int bac=0;

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

   bac+=a[i][j];

  cout<<"Bac cua dinh "<<i<<" "<<bac<<"

";

 }

}

//

int kiemtralienthong(){

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

  chuaxet[i]=1;

 Duyetdinh_BFS(1);

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

  if(chuaxet[i]==1) return 0;  //sau khi duyet tu 1 dinh ma van con dinh chua duyet thi

 return 1;        //chung to ko co duong di tu dinh dinh 1 den dinh do

}

//

int kiemtrabacchan(){

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

  int bac=0;

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

   bac+=a[i][j];

  if(bac%2==1) return 0;

 }

 return 1;

}

//

void kiemtraEuler(){

 if(kiemtralienthong()){

  cout<<"

Do thi lien thong !";

  if(kiemtrabacchan())

   cout<<"

Do thi co chu trinh Euler";

  else

   cout<<"

Do thi khong co chu trinh Euler do co dinh bac le

";

 }

 else{

  cout<<"

Do thi khong lien thong -> khong co chu trinh Euler";

 }

}

//

int main(){

 docdulieu();

 matranvohuong();

 int u;

 cout<<"

Nhap dinh u = ";

 cin>>u;

 cout<<"

Duyet BFS("<<u<<"): ";

 Duyetdinh_BFS(u);

 cout<<"

";

 kiemtraEuler();

}

//Bai 3

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<stdlib.h>

#include<fstream.h>

#define MAX 100 

#include "queue.cpp""

//

int n;

int a[MAX][MAX],chuaxet[MAX];

int s[MAX][MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi1.txt");

 f1>>n;

 cout<<"

"<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  }

  cout<<"

"; 

 }

}

//

void matranvohuong(){

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

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

   s[i][j]=0;

  }

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

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

   if(a[i][j]==1){

    s[i][j] = s[j][i] = 1; 

   }    

  }    

 }

 cout<<"Ma tran ke cua do thi vo huong nen:

";

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

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

   cout<<s[i][j]<<" ";

  }

 cout<<"

"; 

 }

}

//

void DFS(int u){

 cout<<u<<" "; 

 chuaxet[u] = 0;  //dinh u cho la da xet

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

  if((s[u][i])== 1 && (chuaxet[i]== 1))   //neu co duong tu u den i ma i chua xet

   DFS(i);        // thi duyet dfs dinh i

}

//

void Duyetdinh_DFS(int u){

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

  chuaxet[i] = 1;   //cho tat ca cac dinh la chua xet

 DFS(u);    //bat dau duyet DFS tu dinh u

}

//

void bacvao_bacra(){

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

  int bacvao = 0;

  int bacra = 0;

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

   bacra += a[i][j];

   bacvao += a[j][i];

  }

  cout<<"

Dinh "<<i<<" co bac ra = "<<bacra<<" va co bac vao = "<<bacvao;

 }

}

//

int main(){

 docdulieu();

 matranvohuong();

 int u;

 cout<<"

Nhap u = ";

 cin>>u;

 cout<<"Duyet DFS tu dinh "<<u<<" : ";

 Duyetdinh_DFS(u);

 bacvao_bacra();

}

//Bai 4

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<stdlib.h>

#include<fstream.h>

#define MAX 100 

#include "queue.cpp""

//

int n;

int a[MAX][MAX],chuaxet[MAX];

int s[MAX][MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi1.txt");

 f1>>n;

 cout<<"

"<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  }

  cout<<"

"; 

 }

}

//

void matranvohuong(){

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

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

   s[i][j] = 0;

  }

 }

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

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

   if(a[i][j]==1) s[i][j] = s[j][i] = 1;   

  }    

 }

 cout<<"Ma tran ke cua do thi vo huong nen:

";

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

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

   cout<<s[i][j]<<" ";

  }

 cout<<"

"; 

 }

}

//

void Duyetdinh_BFS(int u){

 queue q;

 Init(&q);

 Push(&q,u); //duyet tu dinh u

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

  chuaxet[i] = 1;

 } 

 while(!IsEmpty(&q)){

  int k = Get(&q);  //tham phan tu dau tien cua queue

  cout<<" "<<k;

  chuaxet[k]=0; //gan la da xet

  for(int i=1;i<=n;i++){     //duyet ma tran xem k noi voi dinh nao

   if(s[k][i]==1 && chuaxet[i]==1){   //neu dinh do chua xet

    Push(&q,i);                   //thi day vao queue

    chuaxet[i]=0;    //va gan dinh do da xet

   }

  }

 }

}

//

void bacvao_bacra(){

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

  int bacvao = 0;

  int bacra = 0;

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

   bacra += a[i][j];

   bacvao += a[j][i];

  }

  cout<<"

Dinh "<<i<<" co bac ra = "<<bacra<<" va co bac vao = "<<bacvao;

 }

}

//

int main(){

 docdulieu();

 matranvohuong();

 int u;

 cout<<"

Nhap dinh u = ";

 cin>>u;

 cout<<"

Duyet BFS("<<u<<"): ";

 Duyetdinh_BFS(u);

 cout<<"

";

 bacvao_bacra();

}

//Bai 5

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

#include<fstream.h>

#define MAX 100

//

int n;

int a[MAX][MAX],chuaxet[MAX];

int s[MAX][MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi2.txt");

 f1>>n;

 cout<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  }

  cout<<"

";

 }

}

//

void matranvohuong(){

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

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

   s[i][j] = 0;

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

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

   if(a[i][j] == 1)

    s[i][j] = s[j][i] = 1;

  }

 }

 cout<<"

Ma tran ke cua do thi vo huong  nen la:

";

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

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

   cout<<s[i][j]<<" ";

  }

  cout<<"

";

 }   

}

//

void DFS(int u){

 cout<<u<<" "; 

 chuaxet[u] = 0;  //dinh u cho la da xet

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

  if((s[u][i])== 1 && (chuaxet[i]== 1))   //neu co duong tu u den i ma i chua xet

   DFS(i);        // thi duyet dfs dinh i

}

//

void Duyetdinh_DFS(){

 int u;

 cout<<"

Nhap dinh u = ";

 cin>>u;

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

  chuaxet[i] = 1;   //cho tat ca cac dinh la chua xet

 DFS(u);    //bat dau duyet DFS tu dinh u

}

//

int kiemtralienthong(){

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

  chuaxet[i]=1;

 DFS(1);

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

  if(chuaxet[i]==1) return 0;  //sau khi duyet tu 1 dinh ma van con dinh chua duyet thi

 return 1;        //chung to ko co duong di tu dinh dinh 1 den dinh do

}

//

void sothanhphanlienthong(){

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

  chuaxet[i] = 1;

 int count = 1;

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

  if(chuaxet[i]==1){

   cout<<"

Thanh phan lien thong thu "<<count<<" :";

   DFS(i);

   count++;

  }

}

//

int main(){

 docdulieu();

 matranvohuong();

 Duyetdinh_DFS();

 cout<<"

";

 int i = kiemtralienthong();

 if(i == 1) cout<<"

Do thi vo huong nen lien thong";

 else cout<<"

Do thi vo huong nen khong lien thong";

 cout<<"

";

 sothanhphanlienthong();

}

//Bai 6

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

#include<fstream.h>

#include "queue.cpp"

#define MAX 100

//

int n;

int a[MAX][MAX],chuaxet[MAX];

int s[MAX][MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi2.txt");

 f1>>n;

 cout<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  }

  cout<<"

";

 }

}

//

void matranvohuong(){

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

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

   s[i][j] = 0;

  }

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

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

   if(a[i][j]==1) s[i][j] = s[j][i] =1;

  }

 cout<<"

Ma tran ke cua do thi vo huong nen la:

";

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

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

   cout<<s[i][j]<<" ";

  }

  cout<<"

";

 }  

}

//

void BFS(int u){

 queue q;

 Init(&q);

 Push(&q,u); 

 while(!IsEmpty(&q)){

  int k = Get(&q);

  cout<<k<<" ";

  chuaxet[k] = 0;

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

   if(s[k][i]==1 && chuaxet[i] ==  1){

    Push(&q,i);

    chuaxet[i] = 0;

   }

  }

 }

}

//

void Duyetdinh_BFS(int u){

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

  chuaxet[i] = 1;

 BFS(u); 

}

//

int kiemtralienthong(){

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

  chuaxet[i] = 1;

 } 

 BFS(1);

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

  if(chuaxet[i]==1) return 0;

 }

 return 1;

}

//

void sothanhphanlienthong(){

 int k = 1;

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

  chuaxet[i] = 1;

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

  if(chuaxet[j]==1){

   cout<<"

Thanh phan lien thong thu "<<k<<" :";

   BFS(j);

   k++;

  }

 } 

}

//

int main(){

 docdulieu();

 matranvohuong();

 int u;

 cout<<"

Nhap u = ";

 cin>>u;

 Duyetdinh_BFS(u);

 cout<<"

";

 int s = kiemtralienthong();

 if(s) cout<<"

Do thi lien thong";

 else cout<<"

Do thi ko lien thong";

 sothanhphanlienthong();

}

//Bai 7

#include<iostream.h>

#include<conio.h>

#include<fstream.h>

#include<stdlib.h>

#define MAX 100 

//

int n;

int a[MAX][MAX],chuaxet[MAX];

int s[MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi3.txt");

 f1>>n;

 cout<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  }

  cout<<"

";

 }

}

//

int kiemtramatranke(){

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

  if(a[i][i] == 1) return 0;

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

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

   if(a[i][j] != a[j][i]) return 0;

 return 1;   

}

//

void DFS(int u){

 cout<<u<<" ";

 chuaxet[u] = 0;

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

  if(a[u][i]==1 && chuaxet[i]==1){

   DFS(i);

  } 

}

//

void Duyetdinh_DFS(){

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

  chuaxet[i]=1;

 }

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

  DFS(i);

  cout<<"

";

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

   chuaxet[i]=1;

  }

 }

}

//

void kiemtraLTManh(){

 int kiemtra=1;

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

  for(int j=1;j<=n;j++) chuaxet[j]=1;

  cout<<"

DFS("<<i<<")=";

  DFS(i);

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

   if(chuaxet[j]==1)

    kiemtra=0;

 }

 cout<<"

";

 if(kiemtra) cout<<"Lien thong manh!";

 else cout<<"Do thi khong lien thong manh";

}

//

int main(){

 docdulieu();

 if(kiemtramatranke()) cout<<"

YES

";

 else cout<<"

NO

";

 Duyetdinh_DFS();

 kiemtraLTManh();

}

//Bai 8

#include<iostream.h>

#include<conio.h>

#include<fstream.h>

#include<stdlib.h>

#include "queue.cpp"

#define MAX 100 

//

int n;

int a[MAX][MAX],chuaxet[MAX];

int s[MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi3.txt");

 f1>>n;

 cout<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  }

  cout<<"

";

 }

}

//

int kiemtramatranke(){

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

  if(a[i][i] == 1) return 0;

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

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

   if(a[i][j] != a[j][i]) return 0;

 return 1;   

}

//

void BFS(int u){

 queue q;

 Init(&q);

 chuaxet[u] = 0;

 Push(&q,u);

 while(!IsEmpty(&q)){

  int k = Get(&q);

  cout<<k<<" ";

  chuaxet[k] = 0;

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

   if(a[k][i]==1 && chuaxet[i]==1){

    Push(&q,i);

    chuaxet[i] = 0;

   }

  }

 }

}

//

void Duyetdinh_BFS(){

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

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

   chuaxet[j]=1;

  cout<<"

BFS("<<i<<")=";

  BFS(i);

 }

}

//

void kiemtraLTManh(){

 int kiemtra=1;

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

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

   chuaxet[j]=1;

  cout<<"

BFS("<<i<<")=";

  BFS(i);

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

   if(chuaxet[j]==1)

    kiemtra=0;

 }

 cout<<"

";

 if(kiemtra) cout<<"Lien thong manh!";

 else cout<<"Do thi khong lien thong manh";

}

//

int main(){

 docdulieu();

 if(kiemtramatranke()) cout<<"

YES";

 else cout<<"

NO";

 Duyetdinh_BFS();

 cout<<"

";

 kiemtraLTManh();

}

//Bai 9

#include<iostream.h>

#include<conio.h>

#include<fstream.h>

#include<stdlib.h>

#include "stack.cpp"

#define MAX 100 

//

int n;

int a[MAX][MAX],chuaxet[MAX];

int s[MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi3.txt");

 f1>>n;

 cout<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  }

  cout<<"

";

 }

}

//

void DFS(int u){

 cout<<u<<" ";

 chuaxet[u] = 0;

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

  if(a[u][i]==1 && chuaxet[i]==1){

   DFS(i);

  } 

}

//

void Duyetdinh_DFS(){

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

  chuaxet[i]=1;

 }

 DFS(1);

}

//

int DoDuong(int DuongDi[], int u, int v){

    Stack s;

    int p;

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

         chuaxet[i]=1;

    Init(&s);

    //Day u vao stack

    Push(&s,u);

    chuaxet[u]=0;

    while(DuongDi[v]==0){

        if(IsEmpty(&s)){//Neu stack rong

            cout<<"

Khong co duong di tu "<<u<<" toi "<<v<<"

";

            return 0;//Khong co duong

        }

        p=Pop(&s);

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

                if(a[p][i]==1 && chuaxet[i]){// Neu i la dinh ke voi dinh p va i chua xet

                    DuongDi[i]=p;

                    Push(&s,i);

                    chuaxet[i]=0;

                }

            }

    }

    return (1);

}

void TimDuongDi(){

    int DuongDi[MAX];//Mang danh dau duong di

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

         DuongDi[i]=0;

    int u,v,k;

    cout<<"

TIM DUONG DI TU DINH u TOI DINH v

";

    cout<<"

Nhap dinh u= ";

    cin>>u;

    cout<<"

Nhap dinh v= ";

    cin>>v;

    if(u==v){

        cout<<"

Duong di tu "<<u<<" toi "<<v<<" la:

";

        cout<<u;

        return;

    }

    //Khoi tao 1 stack

        k= DoDuong(DuongDi,u,v);

        if(k==0){

            cout<<"

Khong co duong di tu dinh "<<u<<" toi dinh "<<v;

            return;

        }

    // Khoi tao 1 stack

    Stack r;

    Init(&r);

    k=v;

    Push(&r,k);

    while(k!=u){

        k = DuongDi[k];

        Push(&r,k);

    }

    cout<<"

Duong di tu "<<u<<" toi "<<v<<" la:

";

    while(!IsEmpty(&r))

        cout<<Pop(&r)<<"  ";

}

//

int main(){

 docdulieu();

 cout<<"

Duyet DFS(1) = ";

 Duyetdinh_DFS();

 TimDuongDi();

/* int u,v;

 cout<<"

Nhap u = ";

 cin>>u;

 cout<<"

Nhap v = ";

 cin>>v;

// if(Duong_Di(Duongdi,u,v)) cout<<"

YES";

// else cout<<"

NO";

// TimDuongDi(u,v); */

}

//Bai 10

#include<iostream.h>

#include<conio.h>

#include<fstream.h>

#include<stdlib.h>

#include "stack.cpp"

#define MAX 100 

//

int n;

int a[MAX][MAX],chuaxet[MAX];

int s[MAX];

//

void docdulieu(){

 ifstream f1;

 f1.open("dothi5.txt");

 f1>>n;

 cout<<n<<"

";

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

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

   f1>>a[i][j];

   cout<<a[i][j]<<" ";

  }

  cout<<"

";

 }

}

//

void floy(){

 int u,v;

 cout<<"Nhap u,v: ";

 cin>>u;

 cin>>v;

 int w[100][100];

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

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

   w[i][j]=a[i][j];

   if(w[i][j]==0) w[i][j]=100;

  }

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

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

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

    if(w[i][j]>w[i][k]+w[k][j]) w[i][j]=w[i][k]+w[k][j];

 cout<<"Do dai duong di ngan nhat la: "<<w[u][v];

}

//

void timduongdi(int u,int v){

 Stack s;

 Init(&s);

 Push(&s,u);

}

int main(){

 docdulieu();

 floy();

}

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: #bvquynh