Sei sulla pagina 1di 7

# include<iostream>

using namespace std;

void get(int a[5][5],int m ,int n);

void display(int a[5][5],int m,int n);

void print(int b[20][3]);

void twod_sparse(int a[5][5],int m,int n,int b[20][3]);

void fasttranspose(int b4[20][3],int b3[20][3]);

int main()

int a[5][5],m,n,b[20][3],b1[20][3],b3[20][3]={0},i,ch;

cout<<"\n Enter the no. rows and columns= \t";

cin>>m>>n;

do

cout << "\n **** MENU ***********";

cout <<"\n 1. Get Matrix";

cout << "\n 2. Display 2d Matrix";

cout <<"\n 3. 2d to sparse";

cout << "\n 4. Transpose";

cout <<"\n 5. Fast Transpose";


cout <<"\n 6. Exit";

cout << "\n Enter ur choice";

cin >> ch;

switch (ch)

case 1: cout<<"\nEnter the Matrix= \n";

get(a,m,n);

break;

case 2:

cout<<"\n Matrix= \n";

display(a,m,n);

break;

case 3:

cout<<"\n\n Sparse Matrix= \n\t";

twod_sparse(a,m,n,b);

print(b);

break;

case 4 :

for(i=0;i<=b[0][2];i++)

b1[i][0]=b[i][1];
b1[i][1]=b[i][0];

b1[i][2]=b[i][2];

cout<<"\nTranspose of Sparse Matrix= ";

print(b1);

break;

case 5 :

cout<<"\nFast Transpose= ";

fasttranspose(b,b3);

print(b3);

break;

case 6:

break;

break;

}while(ch !=6);

return 0;

}
void get(int a[5][5],int m, int n)

int i,j;

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

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

cin>>a[i][j];

void display(int a[5][5],int m, int n)

int i,j;

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

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

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

cout<<"\n";

void twod_sparse(int a[5][5],int m,int n,int b[20][3])

{
int i,j,k;

k=1;

b[0][0]=m;

b[0][1]=n;

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

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

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

b[k][0]=i;

b[k][1]=j;

b[k][2]=a[i][j];

k++;

b[0][2]=k-1;

void print(int b[20][3])

int i,n;

n=b[0][2];

cout <<"\n Row =="<<b[0][0] << "\t Col ==" << b[0][1];
cout <<"\n" ;

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

cout <<"\n" << b[i][0] << "\t " << b[i][1] <<"\t" << b[i][2];

void fasttranspose(int b4[20][3],int b3[20][3])

int m,n,t,i,colno,loc;

int total[20]={0},index[20];

m=b4[0][0];

n=b4[0][1];

t=b4[0][2];

b3[0][0]=n;

b3[0][1]=m;

b3[0][2]=t;

for(i=1;i<=t;i++)

colno=b4[i][1];

total[colno]++;

index[0]=1;

for(i=1;i<t;i++){

index[i]=index[i-1]+total[i-1];
}

for(i=1;i<=t;i++)

colno=b4[i][1];

loc=index[colno];

index[colno]++;

b3[loc][0]=b4[i][1];

b3[loc][1]=b4[i][0];

b3[loc][2]=b4[i][2];

Potrebbero piacerti anche