下面代码实现哈夫曼编码,合并两个最小节点 x、y 生成新内部节点 z 时,横线处应填入:
int z = (int)nodes.size(); ________ // 在此处填写代码
- A. nodes.push_back(Node(nodes[x].w+nodes[y].w, x, y, -1)); internalIdx.push_back(z);
- B. nodes.push_back(Node(nodes[x].w+nodes[y].w, x, y, -1)); leafIdx.push_back(z);
- C. internalIdx.push_back(z); nodes.push_back(Node(nodes[x].w+nodes[y].w, x, y, x+y));
- D. nodes.push_back(Node(nodes[x].w+nodes[y].w, x, y, x+y)); leafIdx.push_back(z);
正确答案:A