三元组顺序表

三元组顺序表是稀疏矩阵的一种存储压缩方式,通过顺序存储结构存放三元组。矩阵转置算法包括"按需点菜"和"按位就座"两种方法。"按需点菜"算法时间复杂度为O(n*t),而"按位就座"算法通过预先计算每行非零元位置实现高效转换。
摘要由CSDN通过智能技术生成

三元组顺序表

假设以顺序存储结构存放三元组的线性表,则可得稀疏矩阵的一种存储压缩表示法-称之为三元组顺序表

实现矩阵转置的算法:


         
         
         
         
         

1.“按需点菜”。由于T.data[ ]中的元素是一矩阵T的行序为主序的顺序排列的,即以矩阵M的列序为主序排列,则可以按照M的列号顺序依次从M.data[ ]中“找出”元素进行"行列转化”,之后插入T.data[ ]中。由于对M的每一列都要对M的三元组扫描一遍,因此如此处理的算法的时间复杂度为O(n*t),其中n为M的列数,t为M中非零元的数目

2.“按位就座”。只对M.datap[ ]进行依次扫描,就使所有非零元的三元组在T中“一次到位”。为实现之,首先应分析每个非零元在T.data[ ]中的位置的规律。如非零元(1,2,12)经转换后变成(2,1,12),应直接安置在T.data[ ]中第三位非零元的位置,因为对矩阵T而言,第一行中只有两个非零元,二(2,1

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三元组顺序表加法是指在两个三元组顺序表之间进行元素相加的操作。假设有两个三元组顺序表A和B,它们的存储结构为三个一维数组data、row、col。其中data数组存储三元组中的元素值,row数组存储相应元素在矩阵中的行号,col数组存储相应元素在矩阵中的列号。 实现三元组顺序表的加法,首先要判断两个三元组顺序表的行数和列数是否相等,只有相等时才能进行加法操作。然后按照以下步骤进行: 1. 创建一个新的三元组顺序表C,用于存储两个三元组顺序表相加的结果。 2. 分别设置两个指针pA和pB,分别指向A和B的data数组的起始位置。 3. 利用循环遍历data数组,将A和B的对应位置的元素相加,并将相加的结果存储到C的data数组中。 4. 在遍历过程中,如果pA所指示的元素的行号小于pB所指示的元素的行号,将pA向后移动一位;如果行号相等,则比较列号,如果pA所指示的元素的列号小于pB所指示的元素的列号,则将pA向后移动一位;如果列号相等,则将两个元素的值相加,并将相加的结果存储到C的data数组中。 5. 在每次循环中,将C的row数组和col数组的对应位置分别更新为pA所指示元素的行号和列号。 6. 循环结束后,C的data数组中存储的就是A和B相加的结果,C的row数组和col数组就是相应元素在矩阵中的行号和列号。 最后,返回C作为两个三元组顺序表相加的结果。这样就实现了三元组顺序表的加法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值