最近在看x易的在线视频,其中某个讲数据结构的视频中有这样一个判断题.在矩阵的多重链表表示中,第i行的head和第i列的head实际上是同一个结点.正确答案为对.这是为什么.课程内容和图示见http://www.cnblogs.com/zrui513/p/4753157.html#3443973 .
每一列链表的表头结点的down 域指向该列链表的第一个元素结点,每一行链表的表头结点的right域指向该行表的第一个元素结点。由于各行、列链表头结点的row 域、col 域和v 域均为零,行链表头结点只用right 指针域,列链表头结点只用down指针域,故这两组表头结点可以合用,也就是说对于第i 行的链表和第i 列的链表可以共用同一个头结点。为了方便地找到每一行或每一列,将每行(列)的这些头结点们链接起来,因为头结点的值域空闲,所以用头结点的值域作为连接各头结点的链域,即第i 行(列)的头结点的值域指向第i+1行(列)的头结点,… ,形成一个循环表。这个循环表又有一个头结点,这就是最后的总头结点,指针HA 指向它。总头结点的row 和col 域存储原矩阵的行数和列数。