我正在尝试计算文本中每个单词的出现次数。 所以我在二叉树中存储了所有单词和计数:
typedef struct Node{
char* word;
int count;
struct Node *left;
struct Node *right;
struct Node *parent;
} Node;
现在我需要按计数来排序树。 我不能只做周期和排序,所以我想知道,我能做哪种方式?
这是我现在拥有的例子:
The - 3
/ \
Project - 1 of - 3
/ \ / \
.... .... .... ....
我需要在文本中打印前N个单词。
答案 0 :(得分:1)
遍历树并将单词及其计数提取为以下数组:
import React from 'react';
import { Resize, ResizeVertical, ResizeHorizon } from "react-resize-layout";
import ResizableBox from 'react-resizable-component';
import {BootstrapTable, TableHeaderColumn} from 'react-bootstrap-table';
const fetchedData = [{
column1: "Column1",
column2: "Column2",
column3: "Column3",
column4: "Column4",
column5: "Column5",
column6: "Column6",
column7: "Column7",
column8: "Column8",
column9: "Column9"
}, {
column1: "R2C1",
column2: "R2C2",
column3: "R2C3",
column4: "R2C4",
column5: "R2C5",
column6: "R2C6",
column7: "R2C7",
column8: "R2C8",
column9: "R2C9"
}, {
column1: "R3C1",
column2: "R3C2",
column3: "R3C3",
column4: "R3C4",
column5: "R3C5",
column6: "R3C6",
column7: "R3C7",
column8: "R3C8",
column9: "R3C9"
}];
class TablePage extends React.Component {
render() {
return (
<div>
<Resize handleWidth="5px" handleColor="#777">
<ResizeVertical height="250px">
<table>
<tbody>
<tr>
<td>test
</td>
</tr>
</tbody>
</table>
</ResizeVertical>
<ResizeVertical height="50px" minHeight="20px">
<Resize handleWidth="8px" handleColor="red">
<ResizeHorizon width="150px" height="250px">This section will contain more information...</ResizeHorizon>
<ResizeHorizon width="150px" height="250px">This section will contain graphical information...</ResizeHorizon>
</Resize>
</ResizeVertical>
</Resize>
</div>
);
}
}
export default TablePage;
然后使用struct WordAndCount {
char * word;
int count;
};
对数组进行排序。您将需要一个自定义比较函数来比较WordAndCount.count;
答案 1 :(得分:0)
在树中存储项目的标准是什么?左边的节点总是比右边的节点的数量少吗?如果是这样,为了获得前N个单词,你会进行一个后期遍历,保持一个计数器并在它到达N时停止。