永发信息网

数据结构的习题找高手帮忙解决~!

答案:1  悬赏:0  手机版
解决时间 2021-07-17 05:33
  • 提问者网友:沉默菋噵
  • 2021-07-16 20:00

有一个单链表,其头指针为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++中可以运行的,有没有高手帮忙,感激不尽~~

最佳答案
  • 五星知识达人网友:野慌
  • 2021-07-16 20:37

主函数只用于测试,所以随便写了个。根据数组生成一个单链表,然后调用函数来求数据域为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;
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯