首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设排序二叉树中结点的结构由三个域构成:数据域data,指向左儿子结点的指针域left,指向右儿子结点的指针域right。 设data域为正整数,该二叉树树根结点地址为T。现给出一个正整数X。请编写非递归程序,实现将data域的值小于等于x的结点全部删除。
设排序二叉树中结点的结构由三个域构成:数据域data,指向左儿子结点的指针域left,指向右儿子结点的指针域right。 设data域为正整数,该二叉树树根结点地址为T。现给出一个正整数X。请编写非递归程序,实现将data域的值小于等于x的结点全部删除。
admin
2019-08-15
55
问题
设排序二叉树中结点的结构由三个域构成:数据域data,指向左儿子结点的指针域left,指向右儿子结点的指针域right。
设data域为正整数,该二叉树树根结点地址为T。现给出一个正整数X。请编写非递归程序,实现将data域的值小于等于x的结点全部删除。
选项
答案
利用二叉排序树的性质,从根结点开始查找,若根结点的值小于等于x,则根结点及其左子树均应删除,然后以右子树的根结点为树根,重新开始查找。若根结点的值大于x,则顺左子树向下查找,直到某结点的值小于等于x,则该结点及其左子树均应删除。下面设计一查找算法,确定被删除子树的根结点,再设计一删除算法,删除以被删结点为根的子树。 typedef struct node{ int data; struct node *left, *right; }BiTNode, *BSTree; void DelTree(BSTree r){ //非递归删除以r为根的二叉排序树 BSTree S[]; //栈,容量足够大,栈中元素是二叉排序树结点的指针 BSTree p; int top=0: while(r !=null ∣∣ top>0){ while(r!=null){S[++top]=r;r=r一>left;} //沿左分支向下 if(top>0) //退栈,沿栈顶结点的右子树向下删除,释放被删除结点空间 {p=S[top——];r=p一>right;free(P);} } }//DelTree void DeleteAllx(BSTree T,int x){ //在二叉排序树T中,删除所有小于等于x的结点 BSTree P=T,q; while(T&&T->data<=x){ //根结点的值小于等于x P=T;T=T一>right;p一>right=null; DelTree(P); } //删除二叉树P,删除持续到”根”结点值大于x或T为空树为止 if(T){ q=T;P=T一>left; while(P&&P一>data>x){ //沿根结点左分支向下,查小于等于x的结点 while(P&&p一>data>x){q=P;P=p一>left;} //q记P的双亲 if(P) //p结点的值小于等于X { q->left=P一>right;p一>right=null;DelTree(P); } p=q->left: //再查原p的右子树中小于等于x的结点 } } }
解析
转载请注明原文地址:https://kaotiyun.com/show/s0Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列关于基督教的思想来源的叙述,不正确的是()。
除《凡尔赛和约》外,规定禁止德奥合并的是()。
保加利亚共产党于1990年4月改名为保社会党,它在政府中沦为少数派的时间是()。
关于德国工业革命,说法不正确的是()。
经六朝时期的发展,南方形成了三个农业发达地区即()。
设计一个算法求图的中心点。设v是有向图G的一个顶点,把v的偏心度定义为:MAX{从w到v的最短距离|w属于V(G))如果v是有向图G中具有的最小偏心度的顶点,则称顶点v是G的中心点。
什么是域名解析?域名解析中采取了什么措施提高效率?对同一个域名向DNS服务器发出多次的DNS请求报文后,得到IP地址都不一样,可能吗?为什么?
A、1243B、4312C、2134D、3214D图的BFS遍历。D选项,首先访问结点3,与3邻接的结点4、2都未曾访问过,故3后面因该为2、4(或4、2),故D错。
一个SPOOUNG系统由输入进程I、用户进程P、输出进程O、输入缓冲区、输出缓冲区组成。进程I通过输入缓冲区为进程P输入数据,进程P的处理结果通过输出缓冲区交给进程O输出。进程间数据交换以等长度的数据块为单位,这些数据块均存储在同一个磁盘上,因此,SPOO
当向一棵m阶的B一树作插入操作时,若一个结点中的关键字个数等于(),则必须分裂成两个结点,当向一棵m阶的B一树作删除操作时,若一个结点中的关键字个数等于(),则可能需要同它的左兄弟或右兄弟结点合并成一个结点。
随机试题
假设某企业生产甲、乙、丙三种产品,各产品的边际贡献率分别为10%、15%和30%,销售比重分别为30%、30%和40%,则该企业综合的加权边际贡献率为
女性,32岁,风心病慢性心力衰竭、心房颤动,给予地商辛及利尿剂,2天后心室率由138次/分减至110次/分,尿量增加;但患者仍然有气促,不能平卧。此时治疗应该是
A.中成药B.化学原料药C.中药饮片D.卫生材料E.医疗机构配制的制剂不得在市场上销售的药品是
洪某,男,49岁。平素性情急躁易怒。现症见头摇肢颤,不能自主,伴有头胀,眩晕,项强不舒,口干舌燥,舌红,苔薄黄,脉弦数。其证型为
关于施工总承包和施工总承包管理的说法,正确的是()。
以下关于潜水艇的浮沉,说法正确的是:
良好的亲子沟通能让家庭气氛更和谐,教养子女也变得更轻松。然而,还是有很多父母大叹和孩子难以沟通,或是已经尽力去和弦子沟通,但亲子关系还是不太融洽。其实,孩子和大人的沟通方式有所不同,如果父母只是用心学习与孩子沟通的方式,而没有掌握良好的沟通技巧,仍然不能建
(2007下项管)某系统集成商B最近正在争取某钢铁公司A的办公网络迁移到外地的项目。李某是系统集成商B负责捕捉项目机会的销售经理,鲍某是系统集成商B负责实施的项目经理。由于以往项目销售经理的过度承诺给后继的实施工作带来了很大困难,此次鲍某主动为该项目做售前
如下程序段的输出结果是【】。 i=1 DOWHILEi<10 i=i+2 ENDDO ?i查询与项目“sl(项目号)所使用的任意一个零件相同的项目号、项目名称、零件号和零件名称,使用的SQL语句是SELECT项目
要没置在报表每一页的顶部都输出的信息,需要设置______.
最新回复
(
0
)