我创建了一个二叉树,这是我的插入函数;它工作得很好:
if(newData < data){
if(left) left->insert(newData);
else left = new Node(newData);
}else{
if(right) right->insert(newData);
else right = new Node(newData);
}
我想把它变成这样:
if(newData < data)
left ? left->insert(newData) : left = new Node(newD
我有个问题需要帮助:
编写计算扩展二叉树内部路径长度的程序。使用它来实证地调查在随机生成的二叉树中搜索的键比较的平均数量。
编辑:
所以我想出了一个二叉树的C++类
#include <iostream>
/*Binary tree class based on the struct. Includes basic functions insert, delete, search */
struct node
{
int data;
node *left;
node *right;
};
class binarytree{
public:
给定一些文本文件,我需要读取每个字母数字字符并使用对它们进行编码。
读取字符、存储概率和创建节点,以及使用指针创建Huffman的trie。
但是,我需要使用二叉树的顺序表示来创建和初始化Huffman树,而不需要任何指针。
这可以通过使用指针创建一个常规树来完成,然后将其读入数组中,但是我的目标是直接填充一个带有节点的数组。
我考虑创建较小的树并将它们合并在一起,但选择了矩阵表示,在这种表示中,我将从二进制堆中收集具有最小概率的元素,并将它们存储到矩阵的行中,其中矩阵的行将以相反的顺序表示节点应该在二叉树中的级别。
E.g. Given characters and their probab
我在解决黑客队伍二叉树question.PFB的问题
给出了一个表BST,包含两个列: N和P,其中N表示二叉树中节点的值,P是N的父列。
编写查询,查找按节点值排序的二叉树节点类型。为每个节点输出以下内容之一:
Root: If node is root node.
Leaf: If node is leaf node.
Inner: If node is neither root nor leaf node.
我能够使用下面的查询来解决这个问题
select n,
case
when p is null then 'Root'
when p is not null