Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将指针分配给两个指针的按位或 < C++ >中实现二进制搜索树的代码>删除>代码>方法。在其中一种情况下,我确信树节点只有一个子节点:节点->左或节点->右,我需要修改它的父节点以指向该子节点。正如我前面提到的,node->left和node->right中的一个是NULL。下面是一个片段: }其他{//一个孩子 如果(节点->父节点->左==节点){ 节点->父节点->左=节点->左|节点->右; 节点->父节点->左->父节点->父节点; }否则{ 节点->父节点->右=节点->左|节点->右; 节点->父节点->右侧->父节点->父节点; } }_C++_C_Pointers - Fatal编程技术网

将指针分配给两个指针的按位或 < C++ >中实现二进制搜索树的代码>删除>代码>方法。在其中一种情况下,我确信树节点只有一个子节点:节点->左或节点->右,我需要修改它的父节点以指向该子节点。正如我前面提到的,node->left和node->right中的一个是NULL。下面是一个片段: }其他{//一个孩子 如果(节点->父节点->左==节点){ 节点->父节点->左=节点->左|节点->右; 节点->父节点->左->父节点->父节点; }否则{ 节点->父节点->右=节点->左|节点->右; 节点->父节点->右侧->父节点->父节点; } }

将指针分配给两个指针的按位或 < C++ >中实现二进制搜索树的代码>删除>代码>方法。在其中一种情况下,我确信树节点只有一个子节点:节点->左或节点->右,我需要修改它的父节点以指向该子节点。正如我前面提到的,node->left和node->right中的一个是NULL。下面是一个片段: }其他{//一个孩子 如果(节点->父节点->左==节点){ 节点->父节点->左=节点->左|节点->右; 节点->父节点->左->父节点->父节点; }否则{ 节点->父节点->右=节点->左|节点->右; 节点->父节点->右侧->父节点->父节点; } },c++,c,pointers,C++,C,Pointers,不幸的是,编译器返回了一个错误。我知道它可能不是优雅的,但我只是好奇如何做。< / P >

不幸的是,编译器返回了一个错误。我知道它可能不是优雅的,但我只是好奇如何做。< / P > <指针对指针的位操作不支持C++或C.,可以将它们转换成整数,执行<代码>或<代码>,然后转换回来,但这只是在找麻烦,没有特定的增益。 改用三元表达式:

node->parent->left = node->left ? node->left : node->right;

我不确定那能达到你想要的。将一个按位或两个其他指针的结果分配给指针将导致指针指向谁知道在哪里

我想你要找的是这样的东西:

} else { // One children
  if (node->parent->left == node) {
    node->parent->left = node->left != null ? node->left : node->right;
    node->parent->left->parent = node->parent;
  } else {
    node->parent->right = node->left | node->right;
    node->parent->right->parent = node->parent;
  }
}

你为什么要这样做?你认为指针的作用是什么?@keepkimi首先,指针不是数字。它们是指针。其次,
NULL
不一定是数字0。更具体地说:众所周知,指针包含地址,地址由位模式组成。询问地址的位操纵为什么不起作用是完全正确的。有汇编背景的人会特别困惑,尽管我怀疑这在现在是罕见的。