我想编写一个函数,该函数将指针A作为参数,该指针指向模拟(不一定是二进制)有序树的二叉树树的根。
我们认为树的每个节点都保存了必要的指针LC
和RS
,整数number
。该函数应该遍历有序树的所有节点,对于每个节点,它应该执行以下操作:
如果有序树上你最右边的孩子是一片叶子,那么这个孩子应该被删除。
这是否意味着我们得到了如下的二叉树?
然后相应的有序树将如下,我们要删除节点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);
}
你能告诉我它是否正确吗?