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