十字交叉链表的保存
我有一个问题想问一下,就是三向十字交叉链表怎样保存。可能要用到数据结构的知识,但是我们还没有学,看也没看得很明白。我要做个图书馆管理系统,用C语言来编写,要构造一个三向十字交叉链表。第一个方向的链表是以院系构成的,第二个方向的链表是以每个院系的学生构成的,第三个方向的是以每个学生的借书记录构成的。虽然我知道怎样构建它,但是不知道怎样保存。请各位高手指点迷津,不胜感激!
[解决办法]
保存嘛,很简单的啦,你开3个数据文件,然后做3层循环嵌套在一起,基本像这样
FILE* fp[3];
char filename[3][200];
//
for( i = 0; i < 3; i++ )
fp[i] = fopen( filename[i], "wb+ " );
while( pos1 != NULL )
{
fwrite( pos1, size1, 1, fp[0] );
while( pos2 != NULL )
{
fwrite( pos2, size2, 1, fp[1] );
while( pos3 != NULL )
{
fwrite( pos3, size3, 1, fp[2] );
pos3 = pos3-> next;
}
pos2 = pos2-> next;
}
pos1 = pos1-> next;
}
for( i = 0; i < 3; i++ )
fclose( fp[i] );
其中pos1, pos2, pos3是你的三种节点,size1 2 3是他们去掉指针之后的节点大小
其他的都很明确了的说