0
void BinarySearchTree::insert(int d)
{
tree_node* t = new tree_node;
tree_node* parent;
t->data = d;
t->left = NULL;
t->right = NULL;
parent = NULL;
// is this a new tree?
if(isEmpty()) root = t;
else
{
//Note: ALL insertions are as leaf nodes
tree_node* curr;
curr = root;
// Find the Node's parent
while(curr)
{
parent = curr;
if(t->data > curr->data) curr = curr->right;
else curr = curr->left;
}
if(t->data < parent->data)
parent->left = t;
else
parent->right = t;
}
}
问题:二叉树的C++基础
为什么我需要为tree_node * T分配内存;使用新的但不适用于tree_node * parent;?
tree_node究竟是什么*它在内存中看起来像什么,它有什么作用?
有人可以向我解释 - >运算符及其工作原理吗?
tree_node * t被用作新节点,即将被插入的节点,而parent只是用于在处理期间存储父节点的临时存储变量。 ' - >'操作符是一个访问器,因此您可以将数据存储在对象中。至于tree_node究竟是什么?这可能是专门为此树实现而创建的自定义数据类型。你必须仔细查看你的来源。 – TheZ 2012-07-26 23:05:58
' - >'和其他语言中的'.'意思相同;它引用一个对象的成员。所以'parent-> right'表示父对象中的'right'成员。 – 2012-07-26 23:08:23
@RobertHarvey好...父母不是一个对象,而是一个指针。 – 2012-07-26 23:11:38