用三元数组的结构来表示稀疏矩阵,在某些情况下可以节省存储空间并加快运算速度。但在运算过程中,若稀疏矩阵的非零元素位置发生变化,必将会引起数组中元素的频繁移动。这时,采用链式存储结构(十字链表)表示三元组的线性表更为恰当。

十字链表(orthogonal list)是稀疏矩阵的另一种存储结构。它是用多重链表来存储稀疏矩阵。十字链表适用于操作过程中非零元素的个数及元素位置变动频繁的稀疏矩阵。

一、基本概念

十字链表为矩阵中的每一行设置一个单独链表,同时也为每一列设置一个单独链表。这样,矩阵中的每个非零元就同时包含在两个链表中(即所在行和所在列的链表)。这就大大降低了链表的长度,方便了算法中行方向和列方向的搜索,大大降低了算法的时间复杂度。

同一行的非零元素通过right域链接成一个链表,同一列的非零元素通过down域链接成一个链表,每一个非零元既是某个行链表中的结点,同时又是某个列链表中的结点。整个矩阵构成了一个十字交叉的链表。故称为十字链表。

二、C语言描述

38、稀疏矩阵的十字链表表示和创建相关推荐

  1. 5.3稀疏矩阵的十字链表存储

    十字链表产生原因:当矩阵的非零元个数和位置在操作过程中变化较大时,就不宜采用顺序存储结构来表示三元组的线性表. 十字链表特点: 每一个非零元开用含5个域的结点表示,其中i.j和e这3个域分别表示该非零 ...

  2. 稀疏矩阵建立十字链表c语言,实验6-稀疏矩阵十字链表的存储.doc

    实验6-稀疏矩阵十字链表的存储.doc -/电子信息学院实验报告书课程名 数据结构 题 目 稀疏矩阵十字链表的存储 实验类别 设计 班 级 BX1001 学 号 24 姓 名 肖望龙 2011年 10 ...

  3. 稀疏矩阵的十字链表存储表示和实现(第五章 P104 算法5.4)

    稀疏矩阵的十字链表存储 当矩阵的非零元个数和位置在操作过程中变化较大时,就不宜采用顺序存储结构来表示三元组的线性表.对这种类型的矩阵,采用链式存储结构表示三元组的线性表更为恰当. 在链表中,每个非零元 ...

  4. 稀疏矩阵十字链表类java_稀疏矩阵的十字链表存储表示

    typedef struct OLNode{ int  i,j;                 //该非零元的行列下标 ElemType    e; struct  OLNode    *right ...

  5. 第八周实践项目10 稀疏矩阵的十字链表表示

    #include <stdio.h> #include <malloc.h> #define M 3 //矩阵行 #define N 3 //矩阵列 #define Max ( ...

  6. 电力系统:节点导纳矩阵的稀疏存储(稀疏矩阵)——C语言十字链表实现

    最近学习电力系统分析这门专业课,发现计算机分析在这门课上非常重要. 大电网的等值电路参数计算.导纳矩阵存储.潮流计算等都需要在电脑上编程实现. 打算试试用拿手的纯C来实现导纳矩阵的存储,也就是实现一个 ...

  7. 稀疏矩阵十字链表表示

    类型定义 #include<stdio.h> #include<malloc.h> #include<stdlib.h> #define MAX 100 /*稀疏矩 ...

  8. 【swjtu】数据结构实验5_基于十字链表的稀疏矩阵转置

    实验内容及要求: 编写程序,从字符文件读入三个正整数m, n, t以及t个三元组(i, j, e)建立稀疏矩阵的十字链表存储结构.其中,m.n分别表示矩阵行数和列数:i,  j为非零元素行号和列号.编 ...

  9. c语言建立并存储树,利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现...

    #include #include #include /* 利用十字链表存储有向图,可用于同时查找某个顶点的出度与入度: */ typedef struct edge {//顶点表 int headv ...

  10. 复习:稀疏链表的十字链表

    稀疏矩阵的十字链表表示 (1)只保存非零值 (2)为每一行设置一个单独的链表,同时也为每一列设置一个单独的链表 include include include define Maxsize 10000 ...

最新文章

  1. CSS中实现DIV容器垂直居中
  2. css 在线生成器,CSS Sprites在线生成器
  3. boost::sort模块实现spreadsort 键和数据排序示例
  4. Python绘制决策树的节点
  5. 小爱同学100个奇葩回复_杰理新一代蓝牙芯片将内置小爱同学,语音唤醒、降噪、连续对话加持蓝牙音箱...
  6. python读写文件操作_详解Python文件读写操作
  7. java 标记_Java中的标记语句块?
  8. vue跨域问题:proxy代理跨域
  9. Redis五大数据类型
  10. django mysql 读写分离
  11. windows 10 markdown pad awesomium crashed
  12. 机器学习笔记:特征处理——相关性分析GINI impurity
  13. 买二手苹果macbook被骗真实经历
  14. 立创开源 | 恒温加热台
  15. 什么是世界协调时间UTC
  16. 0024-华为OD机考:身高--体重排序
  17. oracle修改数据库用户名密码,怎样修改oracle数据库的用户名密码
  18. 计算机c盘中用户文件夹内的文件改名,Win10-更改c盘下的用户文件夹名
  19. PythonStock(16):使用bokeh 展示,股票中的16个常用指标
  20. 如何获取彩色图像中的主色彩

热门文章

  1. JBoss,Geronimo还是Tomcat?——三种开源Java应用服务器的比较
  2. 计算机中时间服务是哪个,电脑时间不对 Windows时间服务未运行的解决办法
  3. 百度笔试题--论坛数据库表设计
  4. Flutter学习(三)
  5. 中国农业大学计算机专硕2019分数线,中国农业大学2019年硕士研究生复试分数线...
  6. 甘肃省房屋过户费用计算机,2017二手房过户费计算器
  7. GRUB4DOS资源索引帖,欢迎跟帖补充
  8. 【Paper-Attack】Graph Universal Adversarial Attacks: A Few Bad Actors Ruin Graph Learning Models
  9. 电脑不允许被PING的解决办法
  10. c语言确定母亲节思路,C语言有关确定日期的相关问题