稀疏矩阵问题

问题描述:
某大学存储某个学期的学生成绩。该大学有10000名学生和该学期开设了500门课程,一个自然的实现方法是用二维数组Gards,该数组的行编号(行索引)是学生编号;列编号(列索引)是课程编号。学生编号和学生基本情况的联系通过二维数组students表示;课程编号和课程基本情况的联系通过二维数组classes表示。
数组Gards的每个元素存储每个学生在完成一门课程后获得的成绩。设学生成绩是实数,需要四个字节来存储,则整个Gards数组所占用的空间是:
10000学生*500课程*4字节≈20M字节
但在一般情况下,一个学生一个学期学习6门课程,即表的每一列只有6个单元被成绩占用,而其余的494个单元即98.4%都空着,浪费了。

















上述只是一个学期的成绩保存,如果要保存所有学生每个学期的成绩,仍然采用上述的方式,则存储空间的浪费是非常惊人的。
为了既能方便地增加、查找学生的成绩,又能方便地查找某门课程的选修学生,更主要的是能够节省约90%的存储空间,要采用十字链表的方式来保存学生成绩。实现要求:
应设计一个菜单,具有插入学生成绩、查询学生成绩、按课程查询选修的学生和退出系统等最基本的功能。

作者: Yangyuanjunhao   发布时间: 2011-06-16

求解答 !!!没头绪啊 十字链表!!!

作者: Yangyuanjunhao   发布时间: 2011-06-16



这个是从Dancing Links论文中摘出的图,十字链表大约就是这样的形式。

作者: gogdizzy   发布时间: 2011-06-16