Binary Search Tree - unique values in C++
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
The project is to add words to the to each nodes in the BST.
I need to count the number of unique or distinct values in my BST.
Here is my code for Adding the words. I need help with writing
int distinctWords() const;.
void WordTree:: addPrivate(WordNode *n, ItemType v)
{
if (root == NULL)
root = new WordNode(v);
else if (v == n->m_data)
{
n->m_count++;
}
else if (v < n->m_data)
{
if (n->m_left != NULL)
{
addPrivate(n->m_left, v);
}
else
{
n->m_left = new WordNode(v);
}
}
else if (v > n->m_data)
{
if (n->m_right != NULL)
{
addPrivate(n->m_right, v);
}
else
{
n->m_right = new WordNode(v);
}
}
}
c++ binary-search-tree
add a comment |
The project is to add words to the to each nodes in the BST.
I need to count the number of unique or distinct values in my BST.
Here is my code for Adding the words. I need help with writing
int distinctWords() const;.
void WordTree:: addPrivate(WordNode *n, ItemType v)
{
if (root == NULL)
root = new WordNode(v);
else if (v == n->m_data)
{
n->m_count++;
}
else if (v < n->m_data)
{
if (n->m_left != NULL)
{
addPrivate(n->m_left, v);
}
else
{
n->m_left = new WordNode(v);
}
}
else if (v > n->m_data)
{
if (n->m_right != NULL)
{
addPrivate(n->m_right, v);
}
else
{
n->m_right = new WordNode(v);
}
}
}
c++ binary-search-tree
You have 2 ways: travel the tree to compute the value, or store it as member and updating the value with insertion/removal of word.
– Jarod42
Nov 23 '18 at 21:06
add a comment |
The project is to add words to the to each nodes in the BST.
I need to count the number of unique or distinct values in my BST.
Here is my code for Adding the words. I need help with writing
int distinctWords() const;.
void WordTree:: addPrivate(WordNode *n, ItemType v)
{
if (root == NULL)
root = new WordNode(v);
else if (v == n->m_data)
{
n->m_count++;
}
else if (v < n->m_data)
{
if (n->m_left != NULL)
{
addPrivate(n->m_left, v);
}
else
{
n->m_left = new WordNode(v);
}
}
else if (v > n->m_data)
{
if (n->m_right != NULL)
{
addPrivate(n->m_right, v);
}
else
{
n->m_right = new WordNode(v);
}
}
}
c++ binary-search-tree
The project is to add words to the to each nodes in the BST.
I need to count the number of unique or distinct values in my BST.
Here is my code for Adding the words. I need help with writing
int distinctWords() const;.
void WordTree:: addPrivate(WordNode *n, ItemType v)
{
if (root == NULL)
root = new WordNode(v);
else if (v == n->m_data)
{
n->m_count++;
}
else if (v < n->m_data)
{
if (n->m_left != NULL)
{
addPrivate(n->m_left, v);
}
else
{
n->m_left = new WordNode(v);
}
}
else if (v > n->m_data)
{
if (n->m_right != NULL)
{
addPrivate(n->m_right, v);
}
else
{
n->m_right = new WordNode(v);
}
}
}
c++ binary-search-tree
c++ binary-search-tree
asked Nov 23 '18 at 21:02
Artin Artin
11
11
You have 2 ways: travel the tree to compute the value, or store it as member and updating the value with insertion/removal of word.
– Jarod42
Nov 23 '18 at 21:06
add a comment |
You have 2 ways: travel the tree to compute the value, or store it as member and updating the value with insertion/removal of word.
– Jarod42
Nov 23 '18 at 21:06
You have 2 ways: travel the tree to compute the value, or store it as member and updating the value with insertion/removal of word.
– Jarod42
Nov 23 '18 at 21:06
You have 2 ways: travel the tree to compute the value, or store it as member and updating the value with insertion/removal of word.
– Jarod42
Nov 23 '18 at 21:06
add a comment |
1 Answer
1
active
oldest
votes
With that tree, that's the same as the number of nodes.
Determining the number of nodes recursively:
- If the tree is empty, it has no nodes.
- If it's not empty, it has one more node than the sum of the number of nodes in the subtrees.
In C++,
int distinctWords(const WordNode* node)
{
return node == nullptr
? 0
: 1 + distinctWords(node->m_left) + distinctWords(node->m_right);
}
You currently also count duplicated word, checkingn->m_count
...
– Jarod42
Nov 23 '18 at 21:46
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53452906%2fbinary-search-tree-unique-values-in-c%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
With that tree, that's the same as the number of nodes.
Determining the number of nodes recursively:
- If the tree is empty, it has no nodes.
- If it's not empty, it has one more node than the sum of the number of nodes in the subtrees.
In C++,
int distinctWords(const WordNode* node)
{
return node == nullptr
? 0
: 1 + distinctWords(node->m_left) + distinctWords(node->m_right);
}
You currently also count duplicated word, checkingn->m_count
...
– Jarod42
Nov 23 '18 at 21:46
add a comment |
With that tree, that's the same as the number of nodes.
Determining the number of nodes recursively:
- If the tree is empty, it has no nodes.
- If it's not empty, it has one more node than the sum of the number of nodes in the subtrees.
In C++,
int distinctWords(const WordNode* node)
{
return node == nullptr
? 0
: 1 + distinctWords(node->m_left) + distinctWords(node->m_right);
}
You currently also count duplicated word, checkingn->m_count
...
– Jarod42
Nov 23 '18 at 21:46
add a comment |
With that tree, that's the same as the number of nodes.
Determining the number of nodes recursively:
- If the tree is empty, it has no nodes.
- If it's not empty, it has one more node than the sum of the number of nodes in the subtrees.
In C++,
int distinctWords(const WordNode* node)
{
return node == nullptr
? 0
: 1 + distinctWords(node->m_left) + distinctWords(node->m_right);
}
With that tree, that's the same as the number of nodes.
Determining the number of nodes recursively:
- If the tree is empty, it has no nodes.
- If it's not empty, it has one more node than the sum of the number of nodes in the subtrees.
In C++,
int distinctWords(const WordNode* node)
{
return node == nullptr
? 0
: 1 + distinctWords(node->m_left) + distinctWords(node->m_right);
}
answered Nov 23 '18 at 21:13
molbdnilomolbdnilo
41.8k32152
41.8k32152
You currently also count duplicated word, checkingn->m_count
...
– Jarod42
Nov 23 '18 at 21:46
add a comment |
You currently also count duplicated word, checkingn->m_count
...
– Jarod42
Nov 23 '18 at 21:46
You currently also count duplicated word, checking
n->m_count
...– Jarod42
Nov 23 '18 at 21:46
You currently also count duplicated word, checking
n->m_count
...– Jarod42
Nov 23 '18 at 21:46
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53452906%2fbinary-search-tree-unique-values-in-c%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You have 2 ways: travel the tree to compute the value, or store it as member and updating the value with insertion/removal of word.
– Jarod42
Nov 23 '18 at 21:06