在看一个学生成绩管理程序遇到的一个问题
我在写学生成绩管理程序中遇到了一些疑惑,我将程序中的一些内容写在下面:struct student //记录学生信息的结构体
{
int ID;//学号
char Name[9];//姓名
int Sex;
double Math,Chinese,English;//成绩
struct student *Pre;//这地方不知什么意思,请也帮说明一下,谢谢
struct student *Next;//这地方不知什么意思,请也帮说明一下,谢谢
};
struct student *First;//作为指向学生信息链表(双向链表)的第一个元素的地址。
struct student *temp=(struct student *)malloc(sizeof(struct student));//记录新添加的学生信息。
//[b]以下是我迷惑的内容
if(!First) //如果没有记录(此处是书上注释)
{
First=temp;
First->Next=First;
First->Pre=First; //环形链表(此处是书上的注释)
}
else
{
temp->Pre =First->Pre ;
temp->Next=First;
temp->Pre->Next=temp;
temp->Next->Pre=temp;
}
请各位高手将if语句和else语句的内容帮我注释以下,那些关于Pre,Next的赋值弄的我头都大了,硬是没看明白,不知道有什么作用。非常感谢,我没有多少分,请各位别嫌少
如果各位嫌麻烦,跟我说说temp->Pre->Next和temp->Next->Pre是什么意思,有什么不同,另外temp->Next和temp->Pre是不是分别指向temp的下一个地址和前一个地址?
[ 本帖最后由 lxqlyld 于 2012-10-19 10:59 编辑 ]