国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C 數(shù)據(jù)結(jié)構(gòu)】以三元組表形式表示稀疏矩陣,實現(xiàn)兩個矩陣的加法、減法

這篇具有很好參考價值的文章主要介紹了【C 數(shù)據(jù)結(jié)構(gòu)】以三元組表形式表示稀疏矩陣,實現(xiàn)兩個矩陣的加法、減法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目的:以三元組表形式表示稀疏矩陣,實現(xiàn)兩個矩陣的加法、減法。

實驗步驟

1. 定義三元組存儲結(jié)構(gòu)

2. 輸入稀疏矩陣:首先應(yīng)輸入矩陣的行數(shù)、列數(shù)和非零項的數(shù)目,并判別給出的兩個矩陣的行、列數(shù)對于所要求進(jìn)行的運算是否匹配??稍O(shè)矩陣的行數(shù)和列數(shù)均不超過20。接下來逐個輸入表示非零元的三元組(i, j, aij),程序可以對三元組的輸入順序加以限制,如按行優(yōu)先。

3. 進(jìn)行相關(guān)的運算,如加法或減法。

4. 輸出結(jié)果矩陣(以陣列的形式輸出運算結(jié)果)。

#include<stdio.h>
#include<stdlib.h>

#define MAXSIZE 20
#define OK 1
#define ERROR 0

//用來存放三元組中每一個非零元素的信息
typedef struct {
    int r, c; //行號 列號
    int d;//表示非零元的值
} TupNode;

//用來存放三元組矩陣的信息
typedef struct {
    int rows, cols, nums; //行數(shù) 列數(shù) 非零元素個數(shù)
    TupNode data[MAXSIZE];
} TSMatrix;

//將三元元組表轉(zhuǎn)換成二維數(shù)組
void conversionMatrix(TSMatrix *t, int A[t->rows][t->cols]) {
    for (int i = 0; i < t->rows; i++) {
        for (int j = 0; j < t->cols; j++) {
            A[i][j] = 0; //全部元素賦值0
        }
    }
    for (int i = 0; i < t->nums; i++) {
        A[t->data[i].r - 1][t->data[i].c - 1] = t->data[i].d;
    }
}

//打印矩陣
void printMatrix(TSMatrix *t) {
    int A[t->rows][t->cols];
    conversionMatrix(t, A);
    for (int i = 0; i < t->rows; i++) {
        for (int j = 0; j < t->cols; j++) {
            printf("%2d ", A[i][j]);//以矩陣形式打印
        }
        printf("\n");
    }
    printf("\n");
}

//輸入三元組表
int inputMatrix(TSMatrix *t, int n) {
    printf("請輸入第%d個元組的信息(依次輸入行數(shù),列數(shù),非零元個數(shù)):\n", n);
    scanf("%d%d%d", &t->rows, &t->cols, &t->nums);
    //printf("t->rows=%d, t->cols=%d, t->nums=%d\n", t->rows, t->cols, t->nums);
    int i, j;
    printf("請輸入每個三元組矩陣的非零元素的信息:\n");
    for (i = 0, j = 0; i < t->nums; i++, j++) {
        printf("依次輸入第%d個三元組第%d個非零元素行標(biāo),列標(biāo),數(shù)值", n, i + 1);
        scanf("%d%d%d", &t->data[i].r, &t->data[i].c, &t->data[i].d);
        // printf("t->data[%d].r=%d,t->data[%d].c=%d, t->data[%d]=%d\n", i,t->data[i].r, i,t->data[i].c, i,t->data[i].d);
    }
    printf("第%d個三元組表矩陣如下:\n", n);
    printMatrix(t);
    return OK;
}

//三元組表相加
void calculatingMatrix(TSMatrix *t1, TSMatrix *t2, TSMatrix *t) {
    if (t1->rows != t2->rows || t1->cols != t2->cols) {
        printf("error,該矩陣不能進(jìn)行加減運算,程序退出\n");
        exit(0);
    }
    int A[t1->rows][t1->cols];
    int B[t2->rows][t2->cols];
    int C[t1->rows][t1->cols];
    int C1[t1->rows][t1->cols]; //存儲相減后結(jié)果
    conversionMatrix(t1, A);
    conversionMatrix(t2, B);
    printf("相減后三元組表矩陣如下:\n");
    for (int i = 0; i < t1->rows; i++) {
        for (int j = 0; j < t1->cols; j++) {
            C1[i][j] = A[i][j] - B[i][j];
            printf("%2d ", C1[i][j]);//以矩陣形式打印
        }
        printf("\n");
    }
    printf("相加后三元組表矩陣如下:\n");
    for (int i = 0; i < t1->rows; i++) {
        for (int j = 0; j < t1->cols; j++) {
            C[i][j] = A[i][j] + B[i][j];
            printf("%2d ", C[i][j]);//以矩陣形式打印
        }
        printf("\n");
    }
}

int main() {
    TSMatrix t1;
    TSMatrix t2;
    TSMatrix t;
    inputMatrix(&t1, 1);
    inputMatrix(&t2, 2);
    calculatingMatrix(&t1, &t2, &t);

}

稀疏矩陣減法思路,算法,c語言,數(shù)據(jù)結(jié)構(gòu)

?稀疏矩陣減法思路,算法,c語言,數(shù)據(jù)結(jié)構(gòu)文章來源地址http://www.zghlxwxcb.cn/news/detail-531810.html

到了這里,關(guān)于【C 數(shù)據(jù)結(jié)構(gòu)】以三元組表形式表示稀疏矩陣,實現(xiàn)兩個矩陣的加法、減法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【數(shù)據(jù)結(jié)構(gòu)】三元組表的定義以及快速轉(zhuǎn)置

    【數(shù)據(jù)結(jié)構(gòu)】三元組表的定義以及快速轉(zhuǎn)置

    ??博客主頁: 程序員好冰 ??歡迎 【點贊?? 關(guān)注?? 收藏?? 留言??】 ??本文由 程序員好冰 原創(chuàng),CSDN 首發(fā)! ??入站時間: ??2022 年 07 月 13 日?? ?? 是非不入松風(fēng)耳,花落花開只讀書。 ??推薦書籍:??《Java編程思想》,??《Java 核心技術(shù)卷》 ??參考在線編程網(wǎng)

    2024年02月06日
    瀏覽(18)
  • 用三元組表實現(xiàn)稀疏矩陣的基本操作

    用三元組表實現(xiàn)稀疏矩陣的基本操作

    目錄 問題描述 數(shù)據(jù)結(jié)構(gòu) 算法設(shè)計 算法流程圖 ?源代碼 ?運行結(jié)果? ? ? ?? ? 編寫程序用三元組表實現(xiàn)稀疏矩陣的按列轉(zhuǎn)置操作。 本設(shè)計使用三元組表實現(xiàn)。 程序中設(shè)計了三個函數(shù): 1.函數(shù)InitSPNode()用來建立一個稀疏矩陣的三元組表。 ? ? 首先輸入行數(shù)、列數(shù)和非零元的

    2024年02月03日
    瀏覽(19)
  • 數(shù)組:矩陣快速轉(zhuǎn)置 矩陣相加 三元組順序表/三元矩陣 隨機(jī)生成稀疏矩陣 壓縮矩陣【C語言,數(shù)據(jù)結(jié)構(gòu)】(內(nèi)含源代碼)

    數(shù)組:矩陣快速轉(zhuǎn)置 矩陣相加 三元組順序表/三元矩陣 隨機(jī)生成稀疏矩陣 壓縮矩陣【C語言,數(shù)據(jù)結(jié)構(gòu)】(內(nèi)含源代碼)

    目錄 題目: 題目分析: 概要設(shè)計: 二維矩陣數(shù)據(jù)結(jié)構(gòu): 三元數(shù)組三元順序表順序表結(jié)構(gòu): 詳細(xì)設(shè)計: 三元矩陣相加: 三元矩陣快速轉(zhuǎn)置: 調(diào)試分析: 用戶手冊: 測試結(jié)果: ?源代碼: 主程序: ?頭文件SparseMatrix.h: ?頭文件Triple.h: 總結(jié): 稀疏矩陣A,B均采用 三元組

    2023年04月26日
    瀏覽(20)
  • [數(shù)據(jù)結(jié)構(gòu)(C語言版本)上機(jī)實驗]稀疏矩陣的三元組順序表壓縮存儲以及轉(zhuǎn)置實現(xiàn)(含快速轉(zhuǎn)置)

    [數(shù)據(jù)結(jié)構(gòu)(C語言版本)上機(jī)實驗]稀疏矩陣的三元組順序表壓縮存儲以及轉(zhuǎn)置實現(xiàn)(含快速轉(zhuǎn)置)

    實現(xiàn)效果: 1、編寫程序任意 輸入 一個稀疏矩陣,用 三元組順序表 壓縮存儲 稀疏矩陣 。 2、對稀疏矩陣進(jìn)行 轉(zhuǎn)置 , 輸出 轉(zhuǎn)置后的矩陣。 對應(yīng)《數(shù)據(jù)結(jié)構(gòu)(C語言版)》 第5章 數(shù)組與廣義表 實驗: 1、 掌握下三角矩陣的輸入、輸出、壓縮存儲算法; 2、 理解稀疏矩陣的三元

    2024年02月03日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構(gòu)第七周 :(稀疏矩陣快速轉(zhuǎn)置 + 簡單文本編輯器 + 三元組的矩陣加法 + 九宮格數(shù)獨游戲 + 數(shù)組主元素 + 螺旋數(shù)字矩陣 + 蛇形矩陣)

    【問題描述】 稀疏矩陣的存儲不宜用二維數(shù)組存儲每個元素,那樣的話會浪費很多的存儲空間。所以可以使用一個一維數(shù)組存儲其中的非零元素。這個一維數(shù)組的元素類型是一個三元組,由非零元素在該稀疏矩陣中的位置(行號和列號對)以及該元組的值構(gòu)成。而矩陣轉(zhuǎn)置就

    2023年04月21日
    瀏覽(23)
  • 稀疏矩陣的三元組表示----(算法詳解)

    稀疏矩陣的三元組表示----(算法詳解)

    目錄 基本算法包括:(解釋都在代碼里) 1.創(chuàng)建 2.對三元組元素賦值 3.將三元組元素賦值給變量 4.輸出三元組 5.轉(zhuǎn)置(附加的有興趣可以看看) 稀疏矩陣的概念:矩陣的非零元素相較零元素非常小時,這個矩陣就叫稀疏矩陣。 稀疏矩陣可以用 三元組表示 和 十字鏈表表示

    2024年01月21日
    瀏覽(19)
  • PTA:三元組順序表表示的稀疏矩陣轉(zhuǎn)置Ⅱ

    三元組順序表表示的稀疏矩陣轉(zhuǎn)置Ⅱ。設(shè)a和b為三元組順序表變量,分別表示矩陣M和T。要求按照a中三元組的次序進(jìn)行轉(zhuǎn)置,并將轉(zhuǎn)置后的三元組置入b中恰當(dāng)?shù)奈恢谩?輸入第1行為矩陣行數(shù)m、列數(shù)n及非零元素個數(shù)t。 按行優(yōu)先順序依次輸入t行,每行3個數(shù),分別表示非零元素

    2024年02月06日
    瀏覽(22)
  • 初識數(shù)據(jù)結(jié)構(gòu)之三元組

    初識數(shù)據(jù)結(jié)構(gòu)之三元組

    在初步了解了數(shù)據(jù)結(jié)構(gòu)的研究內(nèi)容后,做一個簡單的嘗試——三元組。 三元組是數(shù)據(jù)結(jié)構(gòu)里的一個基本概念。主要是用來存儲稀疏矩陣的一種壓縮方式,也叫三元組表。 三元組中存放三個值(x,y,z)分別代表矩陣的行、列、值。 ADT Triplet { 數(shù)據(jù)對象:D = {e1,e2,e3 | e1,e2,e3屬于E

    2024年02月11日
    瀏覽(20)
  • 數(shù)據(jù)結(jié)構(gòu)——稀疏矩陣

    數(shù)據(jù)結(jié)構(gòu)——稀疏矩陣

    在矩陣中,若數(shù)據(jù)為0的元素數(shù)目遠(yuǎn)遠(yuǎn)多于非0元素的數(shù)目,并且非0元素分布沒有規(guī)律時,則稱該矩陣為稀疏矩陣;與之相反的叫做稠密矩陣。 將棋盤看作一個二維數(shù)組,在棋子落盤時,要記錄該棋子落下的坐標(biāo),其他坐標(biāo)的值不做記錄,默認(rèn)為0。由于記錄很多無意義的數(shù)據(jù)

    2024年02月03日
    瀏覽(25)
  • 【開卷數(shù)據(jù)結(jié)構(gòu) 】稀疏矩陣

    【開卷數(shù)據(jù)結(jié)構(gòu) 】稀疏矩陣

    ??稀疏矩陣 ??矩陣與稀疏矩陣的定義 ??稀疏矩陣的轉(zhuǎn)置 ??詳細(xì)思路 ??思路一 ??思路二 ??稀疏矩陣的乘法 ??詳細(xì)思路 Q:什么是矩陣 A: 數(shù)學(xué)上,一個 矩陣 由 m 行 n 列的元素組成,是一個 m 行,n 列的表,m 和 n 是矩陣的 維度 。一般地,寫作 mxn(讀作“m乘n”)來指

    2024年01月19日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包