链表中的频率
Frequency in linked Lists
我正在尝试制作一个名为 frequency 的 fn,它返回链表中给定整数的频率。迄今:
int IntSLList::frequency(int e)
{
int total = 0;
IntSLLNode *temp;
for (temp = head; temp!=0 && !(temp-> info ==e) ; temp = temp->next)
{
total++;
}
return total;
但是它返回的数字(应返回 1)但返回 8我的链表有 10 个元素 (0-9
检查等于 e 应该在 for 循环的主体中完成。
int IntSLList::frequency(int e)
{
int total = 0;
IntSLLNode *temp;
for (temp = head; temp!=0 ; temp = temp->next)
{
if( temp->info == e )
total++;
}
return total;
}
这个条件: temp!=0 && !(temp-> info ==e)
导致您最多数到两件事中的第一件事:
- 列表的末尾。
- 第一次到达
e
.
这不是您想要的行为,因此您需要调整条件。我们想要什么?
- 无论数字如何,我们从列表的开头到结尾,因此我们的 for 循环如下所示:
for(IntSLLNode *temp = head; temp; temp = temp->next)
. - 在每个元素中,我们要检查我们是否有等于
e
的数字:
if (temp->info == e) {
total++;
}
这给了我们最后一个循环:
int IntSLList::frequency(int e) {
int total = 0;
for (IntSLLNode *temp = head; temp; temp = temp->next) {
if( temp->info == e ) {
total++;
}
}
return total;
}
相关文章:
- 反向给定链表中的K节点
- 如果没有malloc,链表实现将失败
- 文本文件中的单词链表
- 努力将整数转换为链表。不知道我在这里做错了什么
- 链表,反向函数,数据结构
- 使用std::list创建循环链表
- 链表的泛型函数remove()与成员函数remove)
- 为什么不能修改对象中的值?另外,我如何改进此链表?
- 我们可以删除链表中静态内存中的节点吗
- C++,指针数组,指向双链表中的条目
- 链表中写入访问冲突的未知原因
- 如何修复链表类实现的未处理异常0xDDDDDDDD
- 打印所有链表的元素 (C++)
- 错误:需要类名(链表c++)
- 为什么C中的通用链表中存储的数据已损坏
- C++ 创建包含链表和字符串的对象的链接列表时出错
- 链表c++插入,所有情况都已检查,但没有任何工作
- 链表,将列表复制到另一个列表
- 链表中的频率
- 链表中的频率计数