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

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

?? bo5-3.c

?? C語言
?? C
字號:
 /* bo5-3.c 行邏輯鏈接稀疏矩陣(存儲結構由c5-3.h定義)的基本操作(8個) */
 Status CreateSMatrix(RLSMatrix *M)
 { /* 創建稀疏矩陣M */
   int i;
   Triple T;
   Status k;
   printf("請輸入矩陣的行數,列數,非零元素數:");
   scanf("%d,%d,%d",&(*M).mu,&(*M).nu,&(*M).tu);
   (*M).data[0].i=0; /* 為以下比較做準備 */
   for(i=1;i<=(*M).tu;i++)
   {
     do
     {
       printf("請按行序順序輸入第%d個非零元素所在的行(1~%d),列(1~%d),元素值:",i,(*M).mu,(*M).nu);
       scanf("%d,%d,%d",&T.i,&T.j,&T.e);
       k=0;
       if(T.i<1||T.i>(*M).mu||T.j<1||T.j>(*M).nu) /* 行、列超出范圍 */
         k=1;
       if(T.i<(*M).data[i-1].i||T.i==(*M).data[i-1].i&&T.j<=(*M).data[i-1].j) /* 沒有按順序輸入非零元素 */
         k=1;
     }while(k); /* 當輸入有誤,重新輸入 */
     (*M).data[i]=T;
   }
   for(i=1;i<=(*M).tu;i++) /* 計算rpos[] */
     if((*M).data[i].i>(*M).data[i-1].i)
       for(T.i=0;T.i<(*M).data[i].i-(*M).data[i-1].i;T.i++)
         (*M).rpos[(*M).data[i].i-T.i]=i;
   for(i=(*M).data[(*M).tu].i+1;i<=(*M).mu;i++) /* 給最后沒有非零元素的幾行賦值 */
     (*M).rpos[i]=(*M).tu+1;
   return OK;
 }

 void DestroySMatrix(RLSMatrix *M)
 { /* 銷毀稀疏矩陣M(使M為0行0列0個非零元素的矩陣) */
   (*M).mu=0;
   (*M).nu=0;
   (*M).tu=0;
 }

 void PrintSMatrix(RLSMatrix M)
 { /* 輸出稀疏矩陣M */
   int i;
   printf("%d行%d列%d個非零元素。\n",M.mu,M.nu,M.tu);
   printf("行  列  元素值\n");
   for(i=1;i<=M.tu;i++)
     printf("%2d%4d%8d\n",M.data[i].i,M.data[i].j,M.data[i].e);
   for(i=1;i<=M.mu;i++)
     printf("第%d行的第一個非零元素是本矩陣第%d個元素\n",i,M.rpos[i]);
 }

 Status CopySMatrix(RLSMatrix M,RLSMatrix *T)
 { /* 由稀疏矩陣M復制得到T */
   *T=M;
   return OK;
 }

 Status AddSMatrix(RLSMatrix M,RLSMatrix N,RLSMatrix *Q)
 { /* 求稀疏矩陣的和Q=M+N */
   int k,p,q;
   if(M.mu!=N.mu||M.nu!=N.nu)
     return ERROR;
   (*Q).mu=M.mu;
   (*Q).nu=M.nu;
   (*Q).tu=0;
   M.rpos[M.mu+1]=M.tu+1; /* 為方便后面的while循環臨時設置 */
   N.rpos[N.mu+1]=N.tu+1;
   for(k=1;k<=M.mu;++k) /* 對于每一行,k指示行號 */
   {
     (*Q).rpos[k]=(*Q).tu+1;
     p=M.rpos[k]; /* p指示M矩陣第k行當前元素的序號 */
     q=N.rpos[k]; /* q指示N矩陣第k行當前元素的序號 */
     while(p<M.rpos[k+1]&&q<N.rpos[k+1])
     { /* M,N矩陣均有第k行元素未處理 */
       if(M.data[p].j==N.data[q].j) /* M矩陣當前元素和N矩陣當前元素的列相同 */
       {
         (*Q).data[(*Q).tu+1].e=M.data[p].e+N.data[q].e;
         if((*Q).data[(*Q).tu+1].e!=0)
         {
           ++(*Q).tu;
           (*Q).data[(*Q).tu].i=k;
           (*Q).data[(*Q).tu].j=M.data[p].j;
         }
         ++p;
         ++q;
       }
       else if(M.data[p].j<N.data[q].j)
       { /* M矩陣當前元素的列<N矩陣當前元素的列 */
         ++(*Q).tu;
         (*Q).data[(*Q).tu].e=M.data[p].e;
         (*Q).data[(*Q).tu].i=k;
         (*Q).data[(*Q).tu].j=M.data[p].j;
         ++p;
       }
       else /* M矩陣當前元素的列>N矩陣當前元素的列 */
       {
         ++(*Q).tu;
         (*Q).data[(*Q).tu].e=N.data[q].e;
         (*Q).data[(*Q).tu].i=k;
         (*Q).data[(*Q).tu].j=N.data[q].j;
         ++q;
       }
     }
     while(p<M.rpos[k+1]) /* M矩陣還有k行的元素未處理 */
     {
       ++(*Q).tu;
       (*Q).data[(*Q).tu].e=M.data[p].e;
       (*Q).data[(*Q).tu].i=k;
       (*Q).data[(*Q).tu].j=M.data[p].j;
       ++p;
     }
     while(q<N.rpos[k+1]) /* N矩陣還有k行的元素未處理 */
     {
       ++(*Q).tu;
       (*Q).data[(*Q).tu].e=N.data[q].e;
       (*Q).data[(*Q).tu].i=k;
       (*Q).data[(*Q).tu].j=N.data[q].j;
       ++q;
     }
   }
   return OK;
 }

 Status SubtSMatrix(RLSMatrix M,RLSMatrix N,RLSMatrix *Q)
 { /* 求稀疏矩陣的差Q=M-N */
   int i;
   if(M.mu!=N.mu||M.nu!=N.nu)
     return ERROR;
   for(i=1;i<=N.tu;++i) /* 對于N的每一元素,其值乘以-1 */
     N.data[i].e*=-1;
   AddSMatrix(M,N,Q); /* Q=M+(-N) */
   return OK;
 }

 Status MultSMatrix(RLSMatrix M,RLSMatrix N,RLSMatrix *Q)
 { /* 求稀疏矩陣乘積Q=M*N。算法5.3 */
   int arow,brow,p,q,ccol,ctemp[MAXRC+1];
   if(M.nu!=N.mu) /* 矩陣M的列數應和矩陣N的行數相等 */
     return ERROR;
   (*Q).mu=M.mu; /* Q初始化 */
   (*Q).nu=N.nu;
   (*Q).tu=0;
   M.rpos[M.mu+1]=M.tu+1; /* 為方便后面的while循環臨時設置 */
   N.rpos[N.mu+1]=N.tu+1;
   if(M.tu*N.tu!=0) /* M和N都是非零矩陣 */
   {
     for(arow=1;arow<=M.mu;++arow)
     { /* 從M的第一行開始,到最后一行,arow是M的當前行 */
       for(ccol=1;ccol<=(*Q).nu;++ccol)
         ctemp[ccol]=0; /* Q的當前行的各列元素累加器清零 */
       (*Q).rpos[arow]=(*Q).tu+1; /* Q當前行的第1個元素位于上1行最后1個元素之后 */
       for(p=M.rpos[arow];p<M.rpos[arow+1];++p)
       { /* 對M當前行中每一個非零元 */
         brow=M.data[p].j; /* 找到對應元在N中的行號(M當前元的列號) */
         for(q=N.rpos[brow];q<N.rpos[brow+1];++q)
	 {
           ccol=N.data[q].j; /* 乘積元素在Q中列號 */
           ctemp[ccol]+=M.data[p].e*N.data[q].e;
         }
       } /* 求得Q中第arow行的非零元 */
       for(ccol=1;ccol<=(*Q).nu;++ccol) /* 壓縮存儲該行非零元 */
         if(ctemp[ccol])
         {
           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];
         }
     }
   }
   return OK;
 }

 Status TransposeSMatrix(RLSMatrix M,RLSMatrix *T)
 { /* 求稀疏矩陣M的轉置矩陣T */
   int p,q,t,col,*num;
   num=(int *)malloc((M.nu+1)*sizeof(int));
   (*T).mu=M.nu;
   (*T).nu=M.mu;
   (*T).tu=M.tu;
   if((*T).tu)
   {
     for(col=1;col<=M.nu;++col)
       num[col]=0;  /* 設初值 */
     for(t=1;t<=M.tu;++t) /* 求M中每一列非零元個數 */
       ++num[M.data[t].j];
     (*T).rpos[1]=1;
     for(col=2;col<=M.nu;++col) /* 求M中第col中第一個非零元在(*T).data中的序號 */
       (*T).rpos[col]=(*T).rpos[col-1]+num[col-1];
     for(col=1;col<=M.nu;++col)
       num[col]=(*T).rpos[col];
     for(p=1;p<=M.tu;++p)
     {
       col=M.data[p].j;
       q=num[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;
       ++num[col];
     }
   }
   free(num);
   return OK;
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国久久99热| 亚洲精品一区在线观看| 中文字幕一区在线| 国产麻豆成人精品| 精品国产乱码久久久久久夜甘婷婷| 亚洲777理论| 欧美性猛交xxxxxxxx| 午夜欧美在线一二页| 欧美精选一区二区| 国产精品久久久久久久久果冻传媒| 国产成人h网站| 中文字幕在线一区| 色综合久久天天| 一卡二卡三卡日韩欧美| 欧美丝袜自拍制服另类| 男女视频一区二区| 欧美v日韩v国产v| 国产福利一区二区三区视频在线| 久久亚洲欧美国产精品乐播| 国产白丝精品91爽爽久久| 国产女人aaa级久久久级| 东方欧美亚洲色图在线| 国产精品每日更新| 欧洲av在线精品| 五月婷婷激情综合| 日韩三级av在线播放| 国产精品一区二区三区乱码| 最新高清无码专区| 欧美日韩国产综合视频在线观看| 亚洲va韩国va欧美va| 精品国产自在久精品国产| 国产电影一区在线| 亚洲最色的网站| 日韩一区二区三区观看| 懂色av中文一区二区三区| 一区二区三区欧美亚洲| 日韩视频免费观看高清在线视频| 国产精品99久久久| 亚洲综合视频在线观看| 精品国产伦一区二区三区免费| 成人听书哪个软件好| 午夜婷婷国产麻豆精品| 久久九九全国免费| 欧美在线999| 国产精品乡下勾搭老头1| 亚洲综合视频网| 欧美一级片在线| 97久久久精品综合88久久| 狠狠色狠狠色合久久伊人| 国产精品成人免费精品自在线观看| 91福利视频网站| 国产精品18久久久久久久久| 夜色激情一区二区| 久久综合久久综合久久| 色综合视频在线观看| 久久激情五月激情| 一区二区三区毛片| 久久免费国产精品| 91 com成人网| 91免费国产在线观看| 狠狠久久亚洲欧美| 香蕉影视欧美成人| 亚洲人一二三区| 久久精品这里都是精品| 91精品一区二区三区在线观看| 成人性生交大片免费| 精品一区二区av| 亚洲不卡一区二区三区| ●精品国产综合乱码久久久久| 精品欧美一区二区在线观看| 欧美日韩免费高清一区色橹橹 | 国产欧美日韩综合| 欧美a一区二区| 久久影视一区二区| www.66久久| 欧美精彩视频一区二区三区| 波多野结衣亚洲一区| 一个色在线综合| 欧美一级精品大片| 成人一区二区三区视频在线观看| 99久久精品免费看| 偷拍日韩校园综合在线| 一区二区三区四区亚洲| 亚洲欧洲性图库| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲特级片在线| 国产欧美日韩精品在线| 久久久国产精品麻豆| 精品成人一区二区三区| 日韩欧美三级在线| 日韩精品影音先锋| 91精品国产综合久久香蕉麻豆| 色呦呦国产精品| 色久综合一二码| 91成人免费在线视频| 91网页版在线| 欧美性生交片4| 欧美猛男男办公室激情| 欧美日韩一区二区在线观看| 欧美日高清视频| 欧美精品少妇一区二区三区| 欧美一区二区久久| 精品第一国产综合精品aⅴ| 日韩精品专区在线影院观看| 日韩女优电影在线观看| 日韩欧美一级二级三级久久久| 日韩一区二区视频在线观看| 精品久久久久久久久久久久久久久 | 国产乱码精品一品二品| 成人毛片在线观看| 欧美日韩你懂的| 久久精品一级爱片| 亚洲免费观看在线视频| 免费一级片91| 成人午夜大片免费观看| 欧美伊人久久久久久午夜久久久久| 日韩视频国产视频| 国产69精品一区二区亚洲孕妇 | 欧美一区二区精品在线| 精品国产露脸精彩对白| 亚洲少妇中出一区| 国产精品主播直播| 成人激情免费视频| 日韩色视频在线观看| 中文字幕一区二区日韩精品绯色| 亚洲成人精品一区| av资源站一区| 一区二区三区在线视频观看58 | 91久久精品午夜一区二区| 欧美一区二区在线播放| 国产精品伦一区| 麻豆freexxxx性91精品| 日本韩国视频一区二区| 国产亚洲自拍一区| 七七婷婷婷婷精品国产| 色www精品视频在线观看| 久久午夜色播影院免费高清| 日韩精品国产欧美| 91女神在线视频| 欧美极品xxx| 狠狠色狠狠色综合日日91app| 欧美日韩aaaaa| 亚洲一二三专区| 日本精品视频一区二区| 中文字幕乱码亚洲精品一区| 经典三级视频一区| 欧美疯狂做受xxxx富婆| 日韩码欧中文字| 成人av网站在线观看| 久久精品无码一区二区三区| 美女一区二区视频| 51精品视频一区二区三区| 亚洲一区二区三区四区不卡 | 色偷偷成人一区二区三区91| 国产日韩欧美精品一区| 国产乱国产乱300精品| 精品不卡在线视频| 狠狠色狠狠色合久久伊人| 欧美一级片免费看| 蜜臀久久久久久久| 91精品综合久久久久久| 日本在线播放一区二区三区| 91精品国产综合久久精品麻豆| 亚洲国产婷婷综合在线精品| 91国偷自产一区二区三区观看| 亚洲欧美在线观看| 一本大道久久a久久综合| 亚洲欧美怡红院| 91亚洲大成网污www| 亚洲精品国产成人久久av盗摄| 91免费精品国自产拍在线不卡| 国产精品久久久久一区| 91无套直看片红桃| 一区二区三区四区精品在线视频 | 欧美一级高清大全免费观看| 日韩精品亚洲专区| 欧美一区二区三区播放老司机| 美腿丝袜在线亚洲一区| 久久精品亚洲国产奇米99| 成人高清视频免费观看| 亚洲狠狠丁香婷婷综合久久久| 欧洲精品视频在线观看| 日本伊人精品一区二区三区观看方式| 欧美日韩午夜在线| 免费成人美女在线观看.| 久久精品视频一区二区三区| 高清在线不卡av| 亚洲欧美二区三区| 欧美一区二区三区免费在线看| 韩国av一区二区三区在线观看| 国产人久久人人人人爽| 日本福利一区二区| 六月婷婷色综合| 国产精品视频线看| 欧美在线观看一二区| 蜜臀av亚洲一区中文字幕| 国产女人18水真多18精品一级做| 91视频观看免费| 奇米影视在线99精品| 国产精品丝袜在线|