只为说明3种思想,可用于数组、数据结构等,切勿生搬硬套
3种方法都是当data全为NULL时返回false,
方法1:用比较法判断,比较长度items与计数器finish_num,
finish_num == items时,意思是所有的p->data 都为0
bool AllEmpty(node *p)
{
int finish_num = 0;
while ( p != NULL )
{
if ( p->data == NULL )
finish_num++;
else
return true;
p = p->next;
}
if (finish_num == items) return false;
}
方法2:“一票否定”法
当有一个不为0时,就返回true
bool AllEmpty(node *p)
{
bool r = false;
while (p->next != NULL )
{
if (p->data != 0)
{
r = true;
break;
} //有一个不为0就说明不全为0,就设为true,并跳出
p = p->next;
}
return r;
}
方法3:递归
bool AllEmpty(node *p)
{
bool r = false;
if (p->data != NULL ) r = true;
else
{
if (p->next != NULL ) r = AllEmpty(p->next);
}
return r;
}