跟踪节点被访问的次数

Keeping track of how many times a node has been visited

本文关键字:访问 节点 跟踪      更新时间:2023-10-16

我研究这个主题已经有一段时间了。我还没有得出一个确切的结论。

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

例如:

假设我们输入几个节点,每个节点都有一个char类型的值。

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

用户输入:"b","b"、"c"、"b"answers"a"。

现在"b"已经被访问了三次。

现在,由于b是访问次数最多的节点,您需要将该节点移到前面。

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

任何帮助都将不胜感激。

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

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

另外,定义一个构造函数,将count设置为0。您必须不断地检查计数,以便在每次输入时对链表进行排序。

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

编辑回应评论:-

尝试将其映射到std::priority_queue,其中优先级将是单词的计数。选择最大堆来实现这一点。或者,为了简单起见,您也可以使用std::multimap<int, string>(int是计数,string是单词)。