一 基础知识题:
(一)关于稀疏矩阵的存储
1.有三种存储稀疏矩阵的方法:a.十字链表法b.二维数组表示法c.三元组表示法
现有一n*n的稀疏矩阵,其非零元素的个数为P,假设在上述三种表示法中,每个域(值和指针)都占4个字节的空间,而且头结点和非头结点有相同的结构。请给出三种表示法表示该矩阵各自所需的空间数(以字节为单位)。
解:这道题主要考察稀疏矩阵的三种存储方法,需要对各方法有较深入的认识。
(1)对于一个n*n矩阵,该矩阵有P个非零元素,在十字链表表示法中,零元素不分配空间,但每行每列都应有各自的头指针,所以共有头指针2n个,共占用2n*4=8n个字节。对于非零元素,需要3个数据域(i,j,e)和2个指针域(right,down)。所以共有(3+2)P个域,共需5P*4=20P个字节。于是,采用该表示法共需20P+8n个字节。