c - 如何通过其他参数对二叉树进行排序?

标签 c sorting binary-tree

我正在尝试计算文本中每个单词的出现次数。 所以我将所有单词和计数存储在二叉树中:

typedef struct Node{
         char* word;
         int count;
         struct Node *left;
         struct Node *right;
         struct Node *parent;
} Node;

现在我需要按计数对树进行排序。 我不能只做 while 循环并对其进行排序,所以我想知道我可以用哪种方式来做到这一点?

这是我现在拥有的示例:

                               The - 3
                             /       \
                    Project - 1      of - 3
                     /    \          /    \ 
                 ....     ....      ....    ....

我需要打印文本中的前 N ​​个单词。

最佳答案

遍历树并将单词及其计数提取到以下数组中:

struct WordAndCount {
  char * word;
  int count;
};

然后使用qsort对数组进行排序。您将需要一个比较 WordAndCount.count 的自定义比较函数;

关于c - 如何通过其他参数对二叉树进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49801489/

相关文章:

c - 如何创建 IPC(进程间通信)C 程序来创建两个子进程

c - 防止对 c 中的一个操作进行优化

swift - Swift 中的 DFS 没有终止

c - 为什么我的二叉树没有正确填充?

c - 实现二叉搜索树

c - 包含字符和整数的数组

c++ - D语言调用C++(C)

php - php 如何在 mysql_fetch_assoc 时循环排序?

javascript - 需要帮助对特定索引中的混合字符串和整数的嵌套数组进行排序

java - Collections.sort 不起作用