有一个单链表,其头指针为head,编写一个函数来计算数据域为x的结点个数
int count(head)
node * head;
{ node * p;
int n= ();
p= head ;
while(p!=NULL)
{ if(p->data= = x)n++;
p= p->next;
return(n);
}
}
这是网上找到的答案,老师叫我们做个程序需要与主函数连接,放在c++中可以运行的,有没有高手帮忙,感激不尽~~
有一个单链表,其头指针为head,编写一个函数来计算数据域为x的结点个数
int count(head)
node * head;
{ node * p;
int n= ();
p= head ;
while(p!=NULL)
{ if(p->data= = x)n++;
p= p->next;
return(n);
}
}
这是网上找到的答案,老师叫我们做个程序需要与主函数连接,放在c++中可以运行的,有没有高手帮忙,感激不尽~~
主函数只用于测试,所以随便写了个。根据数组生成一个单链表,然后调用函数来求数据域为2的结点个数。你在网上找的那个函数设计得不合理,应该把要计算个数的值也作为函数参数,所以我对函数做了一点修改。如果对主函数有其它要求,请追问。
#include <iostream>
using namespace std;
struct node
{
int data;
node *next;
};
int count(node *head, int x)
{
int c = 0;
while(head)
{
if(head->data == x)
++c;
head = head->next;
}
return c;
}
int main()
{
int a[10] = {1, 2, 5, 2, 3, 2, 1, 2, 3, 2}, i;
node *head, *p;
head = p = new node;
p->data = a[0];
for(i = 1; i < 10; ++i)
{
p->next = new node;
p = p->next;
p->data = a[i];
}
p->next = NULL;
cout << "数据域为2的结点有" << count(head, 2) << "个\n";
return 0;
}