⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 习题-3.c

📁 数据结构用C语言实现
💻 C
字号:
//本程序只给出了算法思想
//读者可以自己完善本程序
void TSMatrix_Add(TSMatrix A,TSMatrix B,TSMatrix &C)//三元组表示的稀疏矩阵加法
{
  	C.mu=A.mu;C.nu=A.nu;C.tu=0;
  	pa=1;pb=1;pc=1;
  	for(x=1;x<=A.mu;x++) //对矩阵的每一行进行加法
  	{
    		while(A.data[pa].i<x) pa++;
   		 while(B.data[pb].i<x) pb++;
    		while(A.data[pa].i==x&&B.data[pb].i==x)//行列值都相等的元素
    		{
     			 if(A.data[pa].j==B.data[pb].j)
     			 {
       				 ce=A.data[pa].e+B.data[pb].e;
       				 if(ce) //和不为0
        			{
          				C.data[pc].i=x;
         				 C.data[pc].j=A.data[pa].j;
          				C.data[pc].e=ce;
         				 pa++;pb++;pc++;
        			}
      			}//if
      			else if(A.data[pa].j>B.data[pb].j) 
      			{
      				C.data[pc].i=x;
        			C.data[pc].j=B.data[pb].j;
       				C.data[pc].e=B.data[pb].e;
        			pb++;pc++;
     			 }
      			else
      			{
       				 C.data[pc].i=x;
        			C.data[pc].j=A.data[pa].j;
        			C.data[pc].e=A.data[pa].e
       				pa++;pc++;
      			}
    		}//while
    		while(A.data[pa]==x) //插入A中剩余的元素(第x行)
    		{
      			C.data[pc].i=x;
      			C.data[pc].j=A.data[pa].j;
     			C.data[pc].e=A.data[pa].e
     			pa++;pc++;
    		}
    		while(B.data[pb]==x) //插入B中剩余的元素(第x行)
    		{
     			 C.data[pc].i=x;
      			C.data[pc].j=B.data[pb].j;
      			C.data[pc].e=B.data[pb].e;
      			pb++;pc++;
    		}
  	}//for
  	C.tu=pc;
}//TSMatrix_Add

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -