将给定的二叉搜索树中的所有较大值添加到每个节点中

在这里我们将看到一个有趣的问题,我们将为一个给定的二叉搜索树中的每个节点添加更大的值。因此,初始和最终的树将如下所示 –

将给定的二叉搜索树中的所有较大值添加到每个节点中

算法

bstUpdate(root, sum) –

Begin   if root is null, then stop   bstUpdate(right of room, sum)   sum := sum + value of root   update root value using sum   bstUpdate(left of room, sum)End

示例

#includeusing namespace std;class Node {   public:      int data;      Node *left, *right;   };   Node *getNode(int item) {      Node *newNode = new Node();      newNode->data = item;      newNode->left = newNode->right = NULL;      return newNode;}void updateBST(Node *root, int *sum) {   if (root == NULL)      return;   updateBST(root->right, sum); //update right sub tree   *sum = *sum + root->data;   root->data = *sum; //update root data   updateBST(root->left, sum); //update left sub tree}void BSTUpdate(Node *root) {   int sum = 0;   updateBST(root, &sum);}void inorder(Node *root) {   if (root != NULL) {      inorder(root->left);      cout<data<right);   }}Node* insert(Node* node, int data) {   if (node == NULL)      return getNode(data);   if (data data) //go to left      node->left = insert(node->left, data);   else //go to right      node->right = insert(node->right, data);   return node;}int main() {   int data[] = {50, 30, 20, 40, 70, 60, 80};   int n = sizeof(data)/sizeof(data[0]);   Node *root = NULL;   for(int i = 0; i < n; i++) {      root = insert(root, data[i]);   }   BSTUpdate(root);   inorder(root);}

输出

350 330 300 260 210 150 80

以上就是将给定的二叉搜索树中的所有较大值添加到每个节点中的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1445321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 22:24:06
下一篇 2025年12月17日 22:24:18

相关推荐

  • 使用队列反转二叉搜索树中的路径的C++代码

    例如,给定一个二叉搜索树,我们需要从特定键反转其路径。 寻找解决方案的方法 在这种方法中,我们将创建一个队列并推送所有节点,直到获得根节点。 p> 示例 #include using namespace std;struct node { int key; struct node *left,…

    2025年12月17日
    000
  • 将给定二叉搜索树中的所有较大值添加到每个节点上

    BST或二叉搜索树是一种二叉树形式,其中所有左节点的值小于根节点的值,所有右节点的值大于根节点的值。对于这个问题,我们将取一个二叉树并将所有大于当前节点值的值添加到它中。问题“向BST的每个节点添加所有较大的值”被简化为对于BST,将所有大于当前节点值的节点值添加到该节点值。 向BST中的每个节点添…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信