Allow non-default constructor objects?

v1
Brett 2023-01-10 22:48:02 -05:00
parent e5613c8007
commit 21aa7ed6ac
1 changed files with 21 additions and 21 deletions

View File

@ -26,6 +26,10 @@ namespace blt {
BST_node* right = nullptr; BST_node* right = nullptr;
T payload; T payload;
explicit BST_node(const T& _payload) {
payload = _payload;
}
~BST_node() { ~BST_node() {
delete (left); delete (left);
delete (right); delete (right);
@ -52,13 +56,10 @@ namespace blt {
continue; continue;
} }
// insert into the lowest node consistent with a BST // insert into the lowest node consistent with a BST
if (element < searchNode->payload) { if (element < searchNode->payload)
searchNode->left = new BST_node(); searchNode->left = new BST_node(element);
searchNode->left->payload = element; else
} else { searchNode->right = new BST_node(element);
searchNode->right = new BST_node();
searchNode->right->payload = element;
}
return; return;
} }
} }
@ -114,8 +115,7 @@ namespace blt {
inline void insert(const T& element) { inline void insert(const T& element) {
if (m_root == nullptr) { if (m_root == nullptr) {
m_root = new BST_node(); m_root = new BST_node(element);
m_root->payload = element;
return; return;
} }
insert(m_root, element); insert(m_root, element);