交叉链表是一种存储稀疏矩阵的方法,如图1所示,采用了“链表数组”结构。
图1交叉链表的示意图
使用交叉链表压缩存储稀疏矩阵时,矩阵中的每行分别存储在一个链表中,同时所有行链表的表头存储在一个数组rhead中,所有列链表的表头存储在另一个数组chead中
因此,如图2所示,每个链表的节点的结构必须为:
图2交叉链表的节点结构
两个指针字段用于链接行中的下一个元素和列中的下一个元素。
链表中节点的代码可以表示为:
类型结构节点{ int I,j; //元素的行标签和列标签int data; //元素的值struct OLNode * right,*down;//两个指针字段(}OLNode;