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

📄 习题-4.c

📁 含有大量数据结构的源代码 请大家漫漫品味
💻 C
字号:
//本程序只给出了算法思想
//读者可以自己完善本程序
void TSMatrix_Addto(TSMatrix &A,TSMatrix B)//将三元组矩阵B加到A上
{
  	for(i=1;i<=A.tu;i++)
    	A.data[MAXSIZE-A.tu+i]=A.data[i];/把A的所有元素都移到尾部以腾出位置
  	pa=MAXSIZE-A.tu+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)
      	{
        	ne=A.data[pa].e+B.data[pb].e;
        	if(ne) //和不为0
        	{
         	 A.data[pc].i=x;
          	A.data[pc].j=A.data[pa].j;
          	A.data[pc].e=ne;
          	pa++;pb++;pc++;
        	}
      }//if
      else if(A.data[pa].j>B.data[pb].j) 
      {
        	A.data[pc].i=x;
        	A.data[pc].j=B.data[pb].j;
        	A.data[pc].e=B.data[pb].e;
       	 	pb++;pc++;
      }
      else
      {
        	A.data[pc].i=x;
        	A.data[pc].j=A.data[pa].j;
        	A.data[pc].e=A.data[pa].e
        	pa++;pc++;
      }
    }//while
    while(A.data[pa]==x) //插入A中剩余的元素(第x行)
    {
      		A.data[pc].i=x;
      		A.data[pc].j=A.data[pa].j;
      		A.data[pc].e=A.data[pa].e
      		pa++;pc++;
    }
    while(B.data[pb]==x) //插入B中剩余的元素(第x行)
    {
     		 A.data[pc].i=x;
     		 A.data[pc].j=B.data[pb].j;
      		A.data[pc].e=B.data[pb].e;
      		pb++;pc++;
    }
  }//for
  A.tu=pc;
  for(i=A.tu;i<MAXSIZE;i++) A.data[i]={0,0,0}; //清除原来的A中记录
}//TSMatrix_Addto

⌨️ 快捷键说明

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