11.对于每一个元素值为x的阶段,删去以他为根的子树并释放相应的空间
Posted spore
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11.对于每一个元素值为x的阶段,删去以他为根的子树并释放相应的空间相关的知识,希望对你有一定的参考价值。
#include <stdio.h> //删除以x元素为根的所有子树 void Del_x(Bitree bt) //后序遍历删除以bt为根的子树 if(bt) Del_x(bt->lchild); Del_x(bt->rchlid); free(bt); //在二叉树上查找所有以x为元素值的结点,并删除以其为根的子树 void Search_x(Bitree bt,Elempty x) Bitree Q[]; //Q是存放二叉树结点指针的队列。容量足够大 if(bt) //在树非空的情况下进行 if(bt->data==x) //若根结点的值为x,则删除整棵树 Del_x(bt); exit(0); InitQueue(Q); EnQueue(Q,bt); while(!IsEmpty(Q)) DeQueue(Q,p); //删除队头元素,并用p返回 if(p->lchild) //如果右子树不空 if(p->lchild->data==x) //左子树符合删除左子树 Del_x(p->lchild); p->lchild==NULL; else EnQueue(Q,p->lchild); //父节点的左子女置空 if(p->rchild) //如果右子树不空 if(p->rchild->data==x) Del_x(p->rchild); p->rchild=NULL; else EnQueue(Q,p->rchlid);
以上是关于11.对于每一个元素值为x的阶段,删去以他为根的子树并释放相应的空间的主要内容,如果未能解决你的问题,请参考以下文章