链表按字母和频率顺序排序

时间:2020-06-22 17:12:13

标签: java linked-list processing-efficiency

我有一个链表项目。所以我写了insert方法,getCount(E key){插入单词的频率计数(重复了很多单词)},getWords(int n){获得(word,count)格式的前n个单词} ,iterator()。 我的输出是:

(cat,3)(bob,2)(cat,3)(bob,2)(cat,3)(alice,2)(alice,2)

因此,项目希望根据频率数对输出进行排序,如果频率相同,则将按字母顺序对其进行排序。因此输出应该是:

(cat,3)(alice,2)(bob,2)

它也没有打印出重复的内容。 我应该如何更改它们?应该更改插入方法还是为排序创建新方法? 插入方法:

布尔布尔插入(E键){

     Node curr = first;
     if (first == null || !first.key.equals(key)) {
            first = new Node(key,first);
        
        }else {
           
            while (curr.next != null) {
                   curr = curr.next;
            }
            
            curr.next = new Node(key);

            N++;
        }
        return true;
}

1 个答案:

答案 0 :(得分:0)

一定要采用新方法。将其放入频率方法将使其非常混乱。 如果需要,我可以为您提供代码帮助,所以请告诉我。 但我认为,通常的合并或快速排序将起作用,并具有平等的附加条件。我认为重复的单词应该不是问题。 一些参考资料, https://www.geeksforgeeks.org/merge-sort-for-linked-list/