zoukankan      html  css  js  c++  java
  • 稀疏矩阵的反转(普通反转和正常反转)

    #include "stdafx.h"
    #include <iostream>
    
    using namespace std;
    
    typedef int DataType;
    #define SIZE 100
    
    typedef struct{
    	int i,j;
    	DataType e;
    }Triple;
    
    typedef struct{
    	Triple data[SIZE+1];
    	int mu,nu,tu;
    }TSMatrix;
    
    void transpose(TSMatrix	M,TSMatrix &T)
    {
    	//交换行列数
    	T.mu = M.tu;
    	T.nu = M.mu;
    	T.tu = M.tu;
    	
    	if(T.tu)
    	{
    		int q = 1;
    		for(int col =1;col<M.nu;++col)
    		{
    			for(int p=1;p<M.tu;++p)
    			{
    				if(M.data[p].j = col)
    				{
    					T.data[q].i = M.data[p].j;
    					T.data[q].j = M.data[p].i;
    					T.data[q].e = M.data[p].e;
    					++q;
    				}
    			}
    		}
    
    	}
    
    }
    
    void input1(TSMatrix &M)
    {
    	printf("input nu mu tu(With a space interval)of a Matrix:
    ");  
      
    	scanf_s("%d%d%d",M.nu,M.mu,M.tu);  //row,colume,and tu  
      
    	printf("Please input the data of Matrix:
    ");  
      
    	for(int c=1;c<=M.tu;c++)  
      
    	 {  
      
    	   scanf_s("%d",&M.data[c].i);  
      
          scanf_s("%d",&M.data[c].j);  
      
           scanf_s("%d",&M.data[c].e);  
      
       }//for  
      
    }
    
    int PrintM(TSMatrix T)  
      
    {  
      
    	printf("Matrix after transpose is:
    ");  
      
    	for(int c=1;c<=T.tu;c++)  
      
    	 {  
      
    	  printf("%d %d %d
    ",T.data[c].i,T.data[c].j,T.data[c].e);  
      
    	  }//for  
      
    return 1;  
      
    }//InPut  
    
    void fastTranspose(TSMatrix M,TSMatrix &T)
    {
    	//交换行列数
    	T.mu = M.tu;
    	T.nu = M.mu;
    	T.tu = M.tu;
    
    	int cpot[SIZE+1],num[SIZE+1];
    	if(M.tu)
    	{
    		for(int col=1;col<M.mu;col++) num[col]=0;
    		for(int t=1;t<M.tu;t++) ++num[M.data[t].j];
    		cpot[1] = 1;
    		for(int col=2;col<M.mu;col++) cpot[col]=cpot[col-1]+num[col-1];
    		for(int p=1;p<M.tu;++p)
    		{
    			int col = M.data[p].j;
    			int q = cpot[col];
    			T.data[q].i=M.data[p].j;  
                T.data[q].j=M.data[p].i;  
                T.data[q].e=M.data[p].e;  
                ++cpot[col];  
    		}
    	}
    }
    
    /*void main()
    {
    	TSMatrix M;
    	TSMatrix T;
    	input1(M);
    	fastTranspose(M,T);
    	PrintM(M);
    }*/
    

      

  • 相关阅读:
    textArea打印时,内容不显示
    自定义Metadata验证属性
    C# 扩展类与分布类
    JSON基础 JS操作JSON总结
    如何查看别人公众号的粉丝量
    Powerdesigner逆向工程从sql server数据库生成pdm
    springMVC中前台ajax传json数据后台controller接受对象为null
    Mybatis报错: Invalid bound statement (not found)
    Mysql批量插入数据性能问题
    java中String编码转换 UTF-8转GBK
  • 原文地址:https://www.cnblogs.com/waiwai4701/p/4228455.html
Copyright © 2011-2022 走看看