亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 稀疏矩陣運算.cpp

?? 稀疏矩陣運算
?? CPP
字號:
// 稀疏矩陣.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include<malloc.h>
#include<iostream.h>
#define OVERFLOW -1
#define ERROR 0
#define OK 1
#define MAXSIZE 10000
#define MAXRC 100
typedef int ElemType;

typedef struct
{	
    int i;
	int j;
	ElemType e;
}Triple;

typedef struct
{
	Triple data[MAXSIZE+1];
	int rpos[MAXRC+1];
	int mu;
	int nu;
	int tu;
}RLSMatrix;
//三元組的存儲結構




void CreateSMatrix(RLSMatrix &M,int m,int n)
{
//按輸入的矩陣非零元建立以三元組存儲的稀疏矩陣
	
	cout<<"輸入矩陣的值"<<endl;
	 M.tu=0;
	int k=1;
    int p=1;
	int num[100];
	int i,j;
	ElemType e;
	M.mu=m;				//傳遞矩陣的行列數
	M.nu=n;
    
	for(int z=1;z<=100;z++)num[z]=0;

	for(cin>>i>>j>>e;i!=0;cin>>i>>j>>e)
	{//按任意次序輸入非零元

		M.data[k].j=j;
	
		M.data[k].i=i;
	
		M.data[k].e=e;
	
		k++;
		}//for
	M.tu=k-1;

    M.rpos[1]=1;

	for(int a=1;a<=M.tu;++a)++num[M.data[a].i];
	
	for(int b=2;b<=M.mu;++b)M.rpos[b]=M.rpos[b-1]+num[b-1];
//初始化矩陣的行鏈接信息


}//CreateSMatrix


bool MultSMatrix(RLSMatrix M,RLSMatrix N,RLSMatrix &Q)
{
//進行兩個矩陣相乘操作,并把結果壓縮存入新矩陣Q
	int ctemp[100];

	int tp,t,ccol,brow,p,q,arow,lie;

	if(M.nu!=N.mu)return ERROR;

	Q.mu=M.mu;

	Q.nu=N.nu;

	Q.tu=0;
	//Q初始化

	if(M.tu*N.tu!=0)
	{
	for(arow=1;arow<=M.mu;++arow)
	{//處理M的每一行
       int w=arow;
            
		for(lie=1;lie<=N.nu;++lie)
			
			ctemp[lie]=0;			//當前行個元素累加器清零
	
		  Q.rpos[arow]=Q.tu+1;
	
		 
			  if(arow<M.mu)tp=M.rpos[arow+1];

		  
		  else {tp=M.tu+1;}

		  
        

		  for(p=M.rpos[arow];p<tp;++p)
		  {
		      //對當前行中的每一個非零元找到對應元在N中的行號
			  
			  brow=M.data[p].j;
		
	  
		   if(brow<N.mu)t=N.rpos[brow+1];
	
		      else {
				  t=N.tu+1;
			  }//else

	    for(q=N.rpos[brow];q<t;++q)
		{
		  ccol=N.data[q].j;			//乘積元素在Q中列號
	     
		  ctemp[ccol]+=M.data[p].e*N.data[q].e;
	
		}//for q;

			
	
		  }//for p;求得Q中第crow(=arow)行的非零元

			  
		  
	//壓縮存儲存儲該行的非零元
	for(ccol=1;ccol<=Q.nu;++ccol)

		if(ctemp[ccol])
		{
			Q.tu++;

			if(Q.tu>MAXSIZE)return ERROR;
		      
			   Q.data[Q.tu].i=arow;
		         
			     Q.data[Q.tu].j=ccol;

		           Q.data[Q.tu].e=ctemp[ccol];
		
		}//if

	
	
	}//for arow
	
	}//if

return OK;
}//MultSMatrix


void Rmove(RLSMatrix &M,int p)

{//矩陣中非零元后移
	for(int a=M.tu+1;a>=p;a--)

{
		M.data[a].e=M.data[a-1].e;

		M.data[a].i=M.data[a-1].i;

		M.data[a].j=M.data[a-1].j;

}

}


void Lmove(RLSMatrix &M,int p)

{//矩陣中非零元左移
	for(int a=p;a<M.tu;a++)

{
		M.data[a].e=M.data[a+1].e;

			M.data[a].i=M.data[a+1].i;

				M.data[a].j=M.data[a+1].j;

}
}



bool PlusSMatrix(RLSMatrix &M,RLSMatrix N)
{
//進行兩個矩陣的相加,即把第二個矩陣加到第一個矩陣上,如果在對應項上沒有元素則插入,
	//如果相加為零
	//則在第一個矩陣中刪除原來的元素

	int tp,t,p,q,arow,e;

	if(M.mu!=N.mu&&M.nu!=N.nu)return ERROR;

	
	if(M.tu*N.tu!=0)				//兩個矩陣都為非零矩陣
	{
	for(arow=1;arow<=M.mu;++arow)
	
	{//逐行計算
       	
		  if(arow<M.mu)
			  
		  {
		   tp=M.rpos[arow+1];
		  
		   t=N.rpos[arow+1];
		  
		  }

		  else 
		  {tp=M.tu+1;
		   
		  t=N.tu+1;
		  }

		  for(p=M.rpos[arow],q=M.rpos[arow];p<tp||q<t;)

		  {
			  if(p==tp)			//第一個矩陣當前行是否還存在非零元

				  {Rmove(M,p);

		  M.data[p].e=N.data[q].e;

		  M.data[p].i=N.data[q].i;

		  M.data[p].j=N.data[q].j;

		  M.tu++;q++;

		  }

			  if(q==t)p++;					//第二個矩陣當前行是否還存在非零元
			  
			  int a=M.data[p].j;

		  int b=N.data[q].j;

		  if(a<b)p++;

		  else if(a>b)

		  {Rmove(M,p);						//插入第二個矩陣對應位置上第一個矩陣沒有的元素

		  M.data[p].e=N.data[q].e;

		  M.data[p].i=N.data[q].i;

		  M.data[p].j=N.data[q].j;

		  M.tu++;

		  }

		  else 
		  
		  {e=M.data[p].e+N.data[q].e;			//相加
		  
		  

		 
		  M.data[p].e=e;

		  p++;
		  
		  q++;}//else 

		  		 		  
		  }//for q,p

		 

		  }//for arow
	}//if
			
return OK;
}	

void PrintSMatrix(RLSMatrix M)
{   

//以陣列形式打印矩陣	
	ElemType Search(RLSMatrix ,int ,int);
	for(int i=1;i<=M.mu;i++)
	{for(int j=1;j<=M.nu;j++)
		{ElemType e=Search(M,i,j);
   printf("%d ",e);}
	cout<<endl;}

}


void SubN(RLSMatrix &N)
{
	for(int i=1;i<=N.tu;i++)

	  N.data[i].e=-N.data[i].e;
}


bool SubSMatrix(RLSMatrix &M,RLSMatrix N)
{//進行兩個矩陣的相減,這個算法是把第二個矩陣的非零元都乘上-1后加到第一個矩陣上

	SubN(N); 
  
  if(PlusSMatrix(M,N))return 1;

  else return 0;

	
}	
		  





ElemType Search(RLSMatrix M,int i,int j)
{
//查找矩陣中的非零元	
	for(int k=1;k<=M.tu;k++)
		if(M.data[k].i==i&&M.data[k].j==j)
			return M.data[k].e;
		return 0;
}





	


void main(int argc, char* argv[])
{
	RLSMatrix M,N,Q;
	int m,n;
    char  d='y';
	cout<<"歡迎用本程序進行矩陣運算!"<<endl;
	
loop:
	{
		
	cout<<"請輸入第一個矩陣,先輸入行數m再輸入列數n"<<endl;
	cout<<"m=";
	cin>>m;
	cout<<"n=";
	cin>>n;
	CreateSMatrix(M,m,n);
	//建立第一個矩陣
    cout<<"第一個矩陣如下,請校對:"<<endl;
	PrintSMatrix(M);
	cout<<"請輸入第二個矩陣,先輸入行數m再輸入列數n"<<endl;
	cout<<"m=";
	cin>>m;
	cout<<"n=";
	cin>>n;
	CreateSMatrix(N,m,n);			
	//建立第二個矩陣
	cout<<"第二個矩陣如下,請校對:"<<endl;
	PrintSMatrix(N);
    cout<<"請選擇矩陣運算的類型:"<<endl;
	cout<<"(A)加法"<<endl<<"(B)減法"<<endl<<"(C)乘法"<<endl;
	char c;
	cin>>c;
	switch (c)
	{case 'a'://調用矩陣相加函數,并輸出計算結果
	              if(PlusSMatrix(M,N))
				  {cout<<"M+N的結果為:"<<endl;PrintSMatrix(M);}
				  else {cout<<"輸入矩陣行列數不相等,請重新輸入"<<endl;
				  goto loop;}break;
	case 'b'://調用矩陣相減函數,并輸出計算結果
		if( SubSMatrix(M,N)){
			cout<<"M-N的結果為:"<<endl;
	        
			PrintSMatrix(M);}
	 else {cout<<"輸入矩陣行列數不相等,請重新輸入"<<endl;
				  goto loop;}break;
	case 'c'://調用矩陣相乘函數,并輸出計算結果
		if(	MultSMatrix(M,N,Q)){
	cout<<"運算結果為:"<<endl;
    PrintSMatrix(Q);
		}
		else {cout<<"第一個矩陣的列數不等于第二個矩陣的行數,請重新輸入"<<endl;
				  goto loop;}break;}
	cout<<"Do you want to continue(Y/N)?"<<endl;
	if(cin.get()=='Y'||cin.get()=='y') goto loop;
	}
    cout<<"press any key to contine:"<<endl;
    cin.get();
   
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区欧美| 99久久综合精品| 99re视频这里只有精品| 在线成人高清不卡| 日韩毛片在线免费观看| 国模冰冰炮一区二区| 欧美精品成人一区二区三区四区| 久久精品欧美一区二区三区不卡 | 欧美丝袜丝nylons| 国产精品久久久久久一区二区三区 | 亚洲成a人片综合在线| 成人网在线免费视频| 337p日本欧洲亚洲大胆色噜噜| 亚洲激情第一区| 成人免费高清视频| 欧美xxxx在线观看| 欧美96一区二区免费视频| 91福利精品视频| 亚洲欧美国产高清| 91在线精品一区二区| 日本一区二区视频在线观看| 激情综合五月婷婷| 欧美一级日韩免费不卡| 亚洲国产一区二区三区青草影视| 91蝌蚪porny| 中文字幕亚洲成人| 成人动漫在线一区| 国产精品对白交换视频| 成人国产在线观看| 中文字幕日韩av资源站| 99久久精品国产导航| 国产精品乱码久久久久久| 国产99久久久久| 国产喷白浆一区二区三区| 国产成人久久精品77777最新版本| 2017欧美狠狠色| 国产一本一道久久香蕉| 久久综合色播五月| 国产精品亚洲成人| 国产精品久久久久久久浪潮网站| 丁香婷婷综合激情五月色| 国产精品久久久久久久久晋中 | 91国偷自产一区二区三区成为亚洲经典| 国产精品高潮呻吟久久| 99精品欧美一区二区三区综合在线| 一区视频在线播放| 日本二三区不卡| 性做久久久久久久免费看| 日韩一区二区中文字幕| 国产另类ts人妖一区二区| 国产欧美日韩一区二区三区在线观看| 国产不卡视频在线观看| 亚洲精品视频在线| 欧美日韩国产三级| 国内外成人在线| 中文字幕亚洲电影| 欧美精品乱码久久久久久| 精品一区二区三区在线播放视频| 中文字幕久久午夜不卡| 欧美亚洲日本国产| 久久91精品国产91久久小草| 国产欧美日韩在线观看| 欧美日韩一区国产| 国产一区二区美女诱惑| 国产精品成人网| 91精品国产色综合久久久蜜香臀| 国产精品一区二区三区网站| 亚洲精品v日韩精品| 2023国产精品| 在线观看网站黄不卡| 久久99精品久久久久久动态图 | av影院午夜一区| 日韩精品成人一区二区三区| 久久久精品日韩欧美| 欧美在线制服丝袜| 国产精品一区二区三区网站| 亚洲第一福利视频在线| 久久亚洲综合色| 欧美日韩在线播| 成人美女在线视频| 麻豆国产精品官网| 一区二区三区中文字幕在线观看| 日韩精品一区二区三区视频播放| 91色porny蝌蚪| 国产美女精品人人做人人爽| 五月婷婷欧美视频| 中文字幕中文字幕一区二区| 精品日韩在线一区| 欧美日韩国产a| 91无套直看片红桃| 成人午夜av在线| 久草在线在线精品观看| 五月天中文字幕一区二区| 国产精品国产三级国产aⅴ入口| 精品免费一区二区三区| 在线成人高清不卡| 欧美在线观看禁18| 91免费精品国自产拍在线不卡| 国产中文一区二区三区| 日本女人一区二区三区| 亚洲一区二区三区三| 亚洲伦在线观看| 国产精品久久久一本精品| 国产亚洲短视频| 精品国产一区二区三区久久久蜜月 | 国产日韩亚洲欧美综合| 欧美tickle裸体挠脚心vk| 欧美视频一区在线| 欧美综合亚洲图片综合区| 色综合天天综合在线视频| 成人av免费网站| 成人伦理片在线| 成人av一区二区三区| 成人h精品动漫一区二区三区| 国产91丝袜在线18| 成人天堂资源www在线| 国产69精品久久99不卡| 国产精品18久久久久| 国产伦精品一区二区三区视频青涩| 韩国av一区二区三区四区| 激情成人综合网| 国产精品一区在线观看你懂的| 韩国午夜理伦三级不卡影院| 国产一区二区三区黄视频| 国产高清不卡一区| 粉嫩蜜臀av国产精品网站| www.成人网.com| 色av一区二区| 欧美色图12p| 日韩欧美一区二区视频| 精品国产91久久久久久久妲己 | 国产精品二三区| 一区二区三区加勒比av| 肉肉av福利一精品导航| 久久精品国产亚洲aⅴ| 国产69精品久久777的优势| 99免费精品在线观看| 欧美性生活大片视频| 欧美一区日本一区韩国一区| 久久女同性恋中文字幕| 国产精品欧美久久久久无广告| 一区二区三区影院| 日本亚洲三级在线| 成人自拍视频在线| 在线免费不卡电影| 欧美精品一区二区三区在线播放| 国产精品天天看| 婷婷综合另类小说色区| 国产精品资源在线| 欧美性高清videossexo| 久久这里只有精品首页| 亚洲激情在线激情| 国产综合成人久久大片91| av不卡在线播放| 欧美一区二区啪啪| 国产精品免费人成网站| 免费观看日韩电影| 色系网站成人免费| 日韩你懂的在线播放| 亚洲欧美激情小说另类| 六月丁香婷婷久久| 日本高清无吗v一区| 国产亚洲欧美色| 日本欧美在线看| 91麻豆国产在线观看| www成人在线观看| 一区二区三区精品视频在线| 国产成人综合亚洲网站| 在线播放91灌醉迷j高跟美女 | 国产99一区视频免费| 91精品久久久久久久99蜜桃| 自拍偷拍国产精品| 国产精品自拍在线| 欧美一区二区三区日韩视频| 一区二区三区在线观看国产| 国产精品一区在线| 精品美女一区二区| 蜜桃视频在线观看一区二区| 一本一本大道香蕉久在线精品| 久久久99精品久久| 久久99精品一区二区三区三区| 欧美性感一区二区三区| 亚洲蜜臀av乱码久久精品| 国产福利精品一区| 精品国产乱码久久久久久免费| 亚洲电影你懂得| 欧美性猛交xxxx乱大交退制版 | 久久一夜天堂av一区二区三区| 午夜视频久久久久久| 欧美日韩在线三区| 亚洲自拍偷拍网站| 色天天综合色天天久久| 亚洲欧洲日本在线| 99久久综合99久久综合网站| 国产亚洲欧美中文| 懂色av一区二区在线播放| 国产婷婷色一区二区三区在线| 国产一区二区三区精品欧美日韩一区二区三区| 欧美丰满一区二区免费视频 | 欧美一区二区三区四区久久 |