Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
01.05.2014
Размер:
2.3 Кб
Скачать

#include  <stdio.h>

#include  <conio.h>

#include  <stdlib.h>

#include  <string.h>

#include  <iostream.h>


int k,p=0;

int cycle(int **m,int n, int *m2,int *m_ver,int first,int t);

int obrabotka(int L1,int **m1,int n,int *m_v,int first,int t,int i);

void vivod(int **m1,int n);
void free(int **R, int n);



void main(void)

{

int t=0,*m_versh,*m_obrabotannie,i,j,size,**array, first_1,*mtmp,sch=0;


m_versh=new int[size];

m_obrabotannie=new int[size];

mtmp=new int[size];
    
cout << "Enter razmernost grapha: ";
    
cin >> size;
	
array = new int*[size];
	
for ( i = 0; i < size; i++ )
       
  {
array[i] = new int[size];
  }
	
for ( i = 0; i < size; i ++ )
      
{ 
cout << "Enter " << (i + 1) << " stroku: ";
		  
for ( j = 0; j < size; j ++ )
          
  { 
cin >> array[i][j]; 
  }
	   
}
 
{


for(i=0;i<size;i++)

for(j=0;j<size;j++)

 {

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

  {

first_1=i;

for(int q=0;q<size;q++)

if(array[j][q]==1)

   {

mtmp[t]=q;

t++;

   }

 p+=cycle(array,size,mtmp,m_versh,first_1,t);

  }

 }

cout << "Vvedennaya matrica smezhnostey: ";

cout<<endl<<"---------"<<endl;

vivod(array, size);
cout<<endl<<"---------"<<endl;

cout<<endl<<"Kolichestvo prostyx ciklov:"<< p<<endl;



free(array,size);

getch();

}

}




int cycle(int **m,int n, int *m2,int *m_ver,int first,int t)

{

int L,count=0,i=0;

for(int s=0;s<t;s++)

  {

L=m2[s];

count+=obrabotka(L,m,n,m_ver,first,t,i);

  }

return(count);

}



int obrabotka(int L1,int **m1,int n,int *m_v,int first,int t,int i)

{

int u=0,buf=0;
k=0;

while(k!=1)

 {

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

  {

if(j==0 && u==0)

   {
m_v[i]=L1;

u=1;

i++;

   }


if(m1[L1][j] == 1)

   {

buf=j;

for(int l=0;l<(i-1);l++)


       if( j==m_v[l] )

{k=1;

p=0;

return(p);

   }
j=buf;
if(j==first)

   {
p=1;

k=1;

return(p);

   }

//else

//   {

//cout<<"Error - No end"<<endl;

//getch();

//exit(0);

//   }


j=buf;


p=1;

k=1;

obrabotka(j,m1,n,m_v,first,t,i);

  }

 }

}


return p;

}



void free(int **R, int n)

{

for(int e=0;e<n;e++)
 
free(*(R+e));

free(R);

}

void vivod(int **m1,int n)

{

for(int k=0;k<n;k++)
 
{
for(int l=0;l<n;l++)
  
cout<<m1[k][l];
 
cout<<endl;
}

}
Соседние файлы в папке графы
  • #
    01.05.20142.47 Кб15tmp.cpp
  • #
    01.05.2014109.99 Кб13tmp.obj
  • #
    01.05.20142.3 Кб14tmp1.cpp
  • #
    01.05.2014110.12 Кб13tmp1.obj
  • #
    01.05.20142.29 Кб13tmp1.~cpp