结构推理
有三种存储稀疏矩阵的方法:①十字链表法②二维数组表示法③三元组表示法
现有一nxn的稀疏矩阵,其非零元素的个数为p,假设在上述三种表示法中,每个域(值和指针)都占4个字节的空间,而且头结点和非头结点有相同的结构。请给出三种表示法表示该矩阵各自所需的空间数(以字节为单位)。
【正确答案】(1)对于n×n且有p个非零元素的矩阵,在采用十字链表的表示法中,零元素不分配空间,而指向每行每列的头指针共需2n个,每个指针占4个字节,共需8n个字节,而对非零元素来说,表示非零元素的结点共包含3个数据域和2个指针域,即有3p个数据域和2p个指针域,每个指针占4个字节,共需20p个字节。所以,采用十字链表表示法共需8n+20p个字节
(2)二维数组表示法共有个数据元素,因此共需4个字节。
(3)在三元组表示法中,非零元素同样不分配空间,每个三元组需要3个数据域,而存储矩阵的行数、列数以及非零元素个数也需一个三元组即3个数据域,因此共有(p+1)×3个数据域。所以,采用三元组表示法共需12p+12个字节。
【答案解析】