1、十字链表可用于存储具有正交关系的结构,比如稀疏矩阵。
十字链表数据结构如下:
typedef struct crossList
{
int row;
int col;
union{ //共用体,总的头结点用val记录稀疏矩阵非零元素的的个数
int val;
crossList *next; //其余的节点用next串成循环链表
};
crossList *right;
crossList *down;
}*pClist;说明:1)row/col----稀疏矩阵的行/列号,val----元素值,next----将头结点链成链表,right/down----指向同行/列中下一个节点
2)每行/列设置一个表头节点,以right/down链成一个循环链表
3)第i行于第i列共用一个头结点
4)总的头结点与循环链表的头节点链成一个链表,这样总的头节点就是十字链表的代表