返回线性表L中属于元素个数的函数对么?

来源:百度知道 编辑:UC知道 时间:2024/06/21 14:23:00
int ListLength(struct student *head)/*函数部分*/
{
struct student *p1;
int i=0;
p1=head;
p1=p1->next;
while(p1->num)
{
i++;
p1=p1->next;
}
return i;
}

这个函数用于统计表中元素不为0的结点个数,但是应该考虑一下表是否已经结束,为此修改如下:

int ListLength(struct student *head)
{
struct student *p1;
int i=0;
p1=head;
p1=p1->next;
while(p1)/*注意这里,p1用于检测有没有到结尾*/
{
if (p1->num) i++;/*注意这里,检测是否为0的部分应该放在循环内部*/
p1=p1->next;
}
return i;
}

又是你,呵呵,你都不说明p1->num指的是什么,自己又老用这个做while条件的判断,很难解读你的程序;能不能把线性链表和节点结构说明下;struct student 是怎么定义的!?

看了匿名者的回答,感觉应该理解你的意思了;应该是节点中有多类,num有值的算一类,你要统计这一类的个数;匿名者的程序是正确的,你按他的修改就可以了;

p1->num?