返回线性表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;
}
{
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?