永发信息网

编写算法 统计出单链表HL中结点的值等于给定值X的结点数 int CountX(LNode*HL,ELemType)

答案:3  悬赏:50  手机版
解决时间 2021-11-24 10:04
  • 提问者网友:欲望失宠
  • 2021-11-23 23:53
编写算法 统计出单链表HL中结点的值等于给定值X的结点数 int CountX(LNode*HL,ELemType)
最佳答案
  • 五星知识达人网友:动情书生
  • 2021-11-24 00:21
int CountX(LNode *HL, ElementType X){
LNode *p;
int count = 0;
if(HL == NULL)

return 0;

p = HL->next; //同楼上,如果头结点含有数据,则 p=HL;
while(p != NULL){
if(p->data == X)
++count;
p = p->next;
}
return count;
}
全部回答
  • 1楼网友:千杯敬自由
  • 2021-11-24 01:57
你题目给的不清楚。结构体什么的都没给出
程序写起来有点麻烦 只能说说思路
设置个全局变量cnt int cnt=0;
定义一个 LNode* temp=(LNode*malloc(sizeof(LNode));
把temp 指向头 HL temp=HL;
遍历链表 while(temp) {if(temp->data==X) cnt++; temp=temp->right} 最后输出cnt 就可以了
  • 2楼网友:慢性怪人
  • 2021-11-24 01:41
假设LNode的定义为:
struct LNode{
ElementType data;
struct LNode *next;
};
这个问题直接遍历链表,判断相等就可以了。代码如下:(可能有错,烦请检查)
int CountX(LNode *HL, ElementType X){
if(HL == NULL)
return 0;
LNode *p;
p = HL->next; //假设头结点不含数据。如果头结点也含有数据,那就 p=HL;
int count = 0;
while(p != NULL){
if(p->data == X)
++count;
p = p->next;
}
return count;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯