題目:假設稀疏矩陣A和B均以三元組表作為存儲結構,試寫出矩陣相加和相乘的算法,另設三元組表C存放結果矩陣。 要求: 從鍵盤輸入稀疏矩陣A和B 檢測A和B能否相加/相乘 如能,做矩陣相加和相乘運算,並打印運算結果 如不能,應顯示出原因 這里主要就是三元組的運用,比較基礎,詳情見代碼中的注釋。 ...
聲明:圖片及內容基於https: www.bilibili.com video av 特殊矩陣的壓縮和存儲 對稱矩陣的壓縮存儲 三角矩陣的壓縮存儲 對角矩陣的壓縮存儲 稀疏矩陣的壓縮和存儲 稀疏矩陣 三元組 十字鏈表 完整實例 定義三元組 定義稀疏矩陣類 構造函數 析構函數 插入三元組 獲得稀疏矩陣值 打印稀疏矩陣 打印三元組 輸入元素 矩陣加法 矩陣乘法 完整代碼 ...
2021-03-16 17:26 0 390 推薦指數:
題目:假設稀疏矩陣A和B均以三元組表作為存儲結構,試寫出矩陣相加和相乘的算法,另設三元組表C存放結果矩陣。 要求: 從鍵盤輸入稀疏矩陣A和B 檢測A和B能否相加/相乘 如能,做矩陣相加和相乘運算,並打印運算結果 如不能,應顯示出原因 這里主要就是三元組的運用,比較基礎,詳情見代碼中的注釋。 ...
本篇文章的代碼基於【數據結構】【嚴蔚敏】【清華大學】 不是很想分函數來一遍解釋 信息基本上都在注解里 直接上完整代碼好了 ...
為什么要對矩陣進行壓縮存儲呢?對於一個n*m的矩陣,我們一般會想到開一個n*m的二維數組來存儲,這樣計算操作都很方便模擬,但當一個矩陣很大時,這樣對於空間的開銷與浪費是很可怕的,尤其是當矩陣變成多維時。但我們往往不會在矩陣每一個位置都存有數據,很多矩陣元素其實是0,我們需要記錄的只是那些非零元 ...
特殊矩陣的壓縮存儲 數組 數組可以看作線性表的推廣。數組作為一種數據結構其特點是結構中的元素本身可以是具有某種結構的數據,但屬於同一數據類型,數組是一個具有固定格式和數量的數據有序集, 每一個數據元素有唯一的一組下標來標識,因此,在數組上不能做插入、刪除數據元素的操作。 1、數組 ...
在普遍的印象中,矩陣是由方括號圍住,同時各個坐標的數字整齊的排列着。如下圖所示: 看到圖示后,第一反應當然是用一個二維數組來表示,即簡單又易懂。但我們又會碰到下圖所示矩陣: 看看這個矩陣,0好多啊(我們稱之為稀疏矩陣),若用二維數組來表示,會重復存儲了很多個 ...
矩陣相乘的前提條件是:乘號前的矩陣的列數要和乘號后的矩陣的行數相等。且矩陣的乘法運算沒有交換律,即 A*B 和 B*A 是不一樣的。 例如,矩陣A: 矩陣B: 由於矩陣 A 的列數和矩陣 B 的行數相等,可以進行 A*B 運算(不能進行 B*A 運算)。計算方法 ...
#include<stdio.h> #include<malloc.h> #include<stdlib.h> #include<strin ...
沒有經過處理的稀疏矩陣其實就是一個特殊的二維數組,數組中的大部分元素是0或者其他類型的非法值,只有少數幾個非零元素。 為了實現壓縮存儲,可以只存儲稀疏矩陣的非0元素。在存儲稀疏矩陣中的非0元素時,必須要存儲該元素的行列號以及元素值。 我們可以封裝一個三元組類來存儲這些元素。 //三元組 ...