zoukankan      html  css  js  c++  java
  • 三元组

    • 三元组表的C++语言描述

    • 基本运算的算法——建立稀疏矩阵的三元组表的算法、按矩阵的列序转置算法、按矩阵的行序转置算法

    #include<iostream>
    using namespace std;
    template <class T>
    class sanyuanzu
    {
        private:
            struct Node
            {
                int i;
                int j;
                T data;
                Node(int x,int y,T a){
                    i = x;
                    j = y;
                    data = a;
                }
            };
            int length = 0;
            int maxSize;
            int Rows;//矩阵行数
            int Cols;//矩阵列数
            int number;//非0个数
            Node * dusk;
       public:
    
            sanyuanzu(int Max = 10)
            {   cout<<"Rows:"<<endl;
                cout<<"Cols:"<<endl;
                cout<<"Number:"<<endl;
                cin>>Rows>>Cols>>number;
                maxSize = Max;
                dusk[maxSize];
                length = 0;
            }
            void insertdata(int x,int y,T a)
            {
                Node tem(x,y,a);
                dusk[length] = tem;
                length ++;
            }
            void transpose(sanyuanzu & a)
            {
                int q = 0;
                for(int col = 1;col <= Cols;col++)
                {
                    for(int p = 0;p < number;p++ )
                    {
                        if(dusk[p].j==col)
                        {
                            a.dusk[q].i = dusk[p].j;
                            a.dusk[q].j = dusk[p].i;
                            a.dusk[q].data = dusk[p].data;
                            q++;
                        }
                    }
                }
            }
            int sanyuanzu_number()
            {
                return number;
            }
            void print()
            {   cout<<endl;
                for(int i = 0 ; i < number ; i++)
                {
    
                    cout<<dusk[i].i<<" | "<<dusk[i].j<<" | "<<dusk[i].data<<endl;
                }
            }
    
    };
    int main()
    {       cout<<"duskl1"<<endl;
            sanyuanzu<int> duskl1;
            cout<<"duskl2"<<endl;
            sanyuanzu<int> duskl2;
            for(int i = 0 ; i < duskl1.sanyuanzu_number() ; i++)
            {
                int x,y,z;
                cin>>x>>y>>z;
                duskl1.insertdata(x,y,z);
            }
            duskl1.transpose(duskl2);
            duskl2.print();
    }
    

      

  • 相关阅读:
    hanoi(老汉诺塔问题新思维)
    ABP文档
    ABP文档
    ABP文档
    ABP文档
    ABP文档
    ABP文档
    ABP文档
    ABP文档
    ABP框架
  • 原文地址:https://www.cnblogs.com/Duskcl/p/3768535.html
Copyright © 2011-2022 走看看