跟踪节点被访问的次数

时间:2014-10-16 15:44:17

标签: c++ doubly-linked-list

我一直在研究这个话题。我还没有得出一个可靠的结论。

您如何跟踪在双向链接列表中访问节点的次数?

例如:

假设我们输入了几个节点,每个节点都保存了char类型的值。

用户键入要访问的节点的值。

用户输入:' b',' b',' c' ' b',' a','一个'

现在' b'已被访问过三次。

现在,由于b是访问量最大的节点,因此您希望将该节点移到前面。

将节点移到前面很容易,但我不知道如何跟踪节点。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

您可以在节点中添加计数字段,如下所示: -

struct node
{
char alpha;
int count;
struct node *next;
}

此外,定义一个构造函数,您将count设置为0.您必须不断检查计数以在每个输入处对链接列表进行排序。

有一点可以肯定的是,这将是非常糟糕的数据结构选择。

在回应评论时编辑: -

尝试将其映射到std::priority_queue,其中优先级将是单词的计数。选择max-heap来实现这一点。或者你也可以使用std::multimap<int, string>(int为count,字符串是你的话)。