Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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
Algorithm 删除满足属性的节点_Algorithm_Tree_Binary Tree - Fatal编程技术网

Algorithm 删除满足属性的节点

Algorithm 删除满足属性的节点,algorithm,tree,binary-tree,Algorithm,Tree,Binary Tree,我想写一个函数,它以一个指向二叉树根的指针作为参数,该二叉树模拟(不一定是二叉树)有序树。 我们认为树的每一个节点都与必要的指针“代码> LC和 RS,一个整数编号相分离。该函数应遍历有序树的所有节点,对于每个节点u,它应执行以下操作: 如果排序树上u最右边的子级是叶,则应删除该子级 这是否意味着我们得到了一个二叉树,如下所示 然后对应的有序树如下,我们想删除节点C和G 还是我理解错了 编辑:我编写了以下算法: Algorithm(node *A){ node *p=A,*q=NULL;

我想写一个函数,它以一个指向二叉树根的指针作为参数,该二叉树模拟(不一定是二叉树)有序树。 我们认为树的每一个节点都与必要的指针“代码> LC<代码>和<代码> RS,一个整数<代码>编号<代码>相分离。该函数应遍历有序树的所有节点,对于每个节点u,它应执行以下操作:

如果排序树上u最右边的子级是叶,则应删除该子级

这是否意味着我们得到了一个二叉树,如下所示

然后对应的有序树如下,我们想删除节点C和G

还是我理解错了

编辑:我编写了以下算法:

Algorithm(node *A){
  node *p=A,*q=NULL;
  if (p==NULL) return;
  if (p->LC!=NULL){
      q=p->LC;
      if (q->RS!=NULL and q->RS->RS==NULL and q->RS->LC==NULL){
          q->RC=NULL;
      }
      if (q->LC!=NULL) Algorithm(q);
   }
   Algorirthm(q->RC);
}

你能告诉我这是否正确吗?

这些照片看起来非常相似…@OliverCharlesworth噢,对不起。。。这是同一张照片。。。我编辑了我的文章…我认为只有节点G和C必须在最初的树中被删除,这是完全删除G和C,不要将它链接到B和F