通用链表 数组与矩阵 稀疏矩阵 特殊矩阵 无规律矩阵

封装链表:
    5、Linux内核通用链表
        既然链表中的节点不能包含万物,那么就让万物来包含节点
    6、通用链表
        节点:
            void* ptr;  //  数据域
            指针域
        运算:
            常规功能+回调函数

数组与矩阵:
    数组:存储空间连续、数据类型相同的表结构
    矩阵:带二维信息的数据,一般使用二维数组来存储矩阵
    稀疏矩阵:矩阵有存储有效数据不多,绝大多数都是无效信息数据不需要存储,数量的多少没有特定的标准,全凭感觉
    这些矩阵如果使用二维数组存储的话,会非常浪费存储空间,为了节约内存,可以考虑对矩阵进行压缩
    特殊矩阵:
        上三角矩阵 n*n
        [0] [1] [3] [6]
        [ ] [2] [4] [7]
        [ ] [ ] [5] [8]
        [ ] [ ] [ ] [9]
        压缩方法:用一维数组存储
        数组的长度:n*(n+1)/2
        对应关系:(j+1)*j/2+i  ->对应的一维数组下标 
        行列关系:j>=i

        下三角矩阵
        [0] [ ] [ ] [ ]
        [1] [2] [ ] [ ]
        [3] [4] [5] [ ]
        [6] [7] [8] [9]
        压缩方法:用一维数组存储
        数组的长度:n*(n+1)/2
        对应关系:(i+1)*i/2+j  ->对应的一维数组下标 
        行列关系:j<=i

        对称矩阵:沿着 (0,0)(1,1)(2,2)...(i,i)对称存储
        [0] [1] [3] [6]
        [1] [2] [4] [7]
        [3] [4] [5] [8]
        [6] [7] [8] [9]
        压缩方法:用一维数组存储,把它当做上三角或者下三角看待即可
        数组的长度:n*(n+1)/2
        对应关系:(i+1)*i/2+j 或者 (j+1)*j/2+i ->对应的一维数组下标 
        行列关系:j<=i 或者 j>=i

        对角矩阵(带状矩阵):
        [0] [1] [ ] [ ]
        [2] [3] [4] [ ]
        [ ] [5] [6] [7]
        [ ] [ ] [8] [9]
        压缩方法:用一维数组存储
        数组的长度:3n-2
        对应关系:2*i+j ->对应的一维数组下标 
        行列关系:abs(i-j) <= 1

        无规律的稀疏矩阵:
            采用三元组方式进行压缩
            三元组:
                有三个数据项:行、列、值,构成一个整体,可以顺序存储,也可以链式存储
            
            注意:稀疏矩阵经过压缩后就丢失了随机访问的功能
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值