编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根
编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间
编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为
根的子树,并释放相应的空间。
[解答]多种方法:(5种)
1:
Status Del-subtree(Bitree bt){
//删除bt所指二叉树,并释放相应的空间
if (bt) {
Del-subtree(bt->lchild);
Del-subtree(bt->rchild);
free(bt);
}
return OK;
}//Del-subtree
Status Search-del(Bitree bt, TelemType x){
//在bt所指的二叉树中,查找所有元素值为x的结点,并删除以它为根的子树
if (bt){
if (bt->data=x) Del-subtree(bt);
else {
Search-Del(bt->lchild, x);
Search-Del(bt->rchild, x);
}
编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间
}
return OK;
}//Search-Del
2:编写递归算法,对于二叉树中每一个元素值为X的结点,删去以它为根的子树,并释放相应的空间。
void Del_Sub(BiTree T)
{ if(T->lchild) Del_Sub(T->lchild);
if(T->rchild) Del_Sub(T->rchild);
free(T);
}
void
{ if(T->data==x) Del_Sub(T);
else
{if(T->lchild) Del_Sub_x(T->lchild,x);
if(T->rchild) Del_Sub_x(T->rchild,x);
}
}
编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间
3.编写递归算法:对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。
[提示]:
(1)按先序查找;(2)超前查看子结点(3)按后序释放;
void DelSubTree(BiTree *bt, DataType x)
{
if ( *bt != NULL && (*bt) ->data==x )
{ FreeTree(*bt);
*bt =NULL;
}
else DelTree( *bt, x)
void DelTree(BiTree bt, DataType x)
{ if ( bt )
{ if (bt->LChild && bt->LChild->data==x)
{ FreeTree(bt->LChild);
bt->LChild=NULL;
}
if (bt->RChild && bt->RChild->data==x)
{ FreeTree(bt->RChild);
bt->RChild=NULL;
}
编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间
DelTree(bt->LChild, x);
DelTree(bt->RChild, x);
}
}
4:
//结点定义
template<class T>
class BstTree;
template<class T>
class BstNode
{
friend class BstTree<T>;
private:
int Level;
T data;
BstNode<T>* LeftPtr;
BstNode<T>* RightPtr;
public:
BstNode(const T& info=0,BstNode<T>* left=0,BstNode<T>* right=0,int lev=0)
{
data=info;LeftPtr=left;RightPtr=right;Level=lev;
}
};
//释放子树空间,注意传递一个二维指针(即searchTree函数返回的结点的地址),即指针的地址,以此来释放空间
template<class T>
void BstTree<T>::releaseHelper(BstNode<T>** root)
{
if(*(root)!=0)
{
BstNode<T>* tempt=(*root);
releaseHelper(&((*root)->LeftPtr));
releaseHelper(&((*root)->RightPtr));
cout<<tempt->data<<" ";
编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间
delete tempt;
}
}
//查找要删除的子树的根结点
template<class T>
BstNode<T>* BstTree<T>::serchTree(const T& value) {
BstNode<T>* tempt=Root;
bool found=false;
for(; ;)
{
if(found || tempt==0) break;
if(value<tempt->data)
tempt=tempt->LeftPtr;
else if(value>tempt->data)
tempt=tempt->RightPtr;
else
found=true;
}
if(found)
return tempt;//查找到要删除子树的根节点 else
return NULL;//否则返回NULL
}
…… 此处隐藏:362字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




