首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设排序二叉树中结点的结构由三个域构成:数据域data,指向左儿子结点的指针域left,指向右儿子结点的指针域right。 设data域为正整数,该二叉树树根结点地址为T。现给出一个正整数x。请编写非递归程序,实现将data域的值小于等于x的结点全部删除。
设排序二叉树中结点的结构由三个域构成:数据域data,指向左儿子结点的指针域left,指向右儿子结点的指针域right。 设data域为正整数,该二叉树树根结点地址为T。现给出一个正整数x。请编写非递归程序,实现将data域的值小于等于x的结点全部删除。
admin
2019-01-16
28
问题
设排序二叉树中结点的结构由三个域构成:数据域data,指向左儿子结点的指针域left,指向右儿子结点的指针域right。
设data域为正整数,该二叉树树根结点地址为T。现给出一个正整数x。请编写非递归程序,实现将data域的值小于等于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://jikaoti.com/ti/C3fjFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
关于希腊早期宗教的叙述不正确的是()。
阅读下列史料,并回答问题:在琶勒尼斯(注:地名)一役获胜后,他(庇西特拉图)便占领政府,并解除人民武装;现在他已能稳定地握住僭主政权,并且取得那克索斯。以吕格达密斯为统治者。他解除人民武装的方法是这样的:他在塞修斯庙举行了一个武装的阅兵式,同时举行一次民
在下列哪个条约中,最先出现了片面最惠国待遇?()
佛教在从印度向外传播的过程中分为两大流派,其中小乘佛教又称为()。
16世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
阅读下面史料,回答问题:材料一各缔约国主力舰替换总吨位按照标准排水量计算不得超过如下:合众国525000吨;英帝国525000吨;法国175000吨;意大利175000吨;日本315000吨。
一棵:BS’r树共7个结点,值分别为1、2、3、4、5、6、7,形态为满二叉树,()不是插入序列。
并发使得处理机的利用率得到提高,其主要原因是处理机与IO可以同时为多个进程服务,也即处理机与IO设备真正地并行。但是处理机的利用率提高并不是简单地将两个进程的处理机利用率相加,而是遵循一定的规律。现在有一个计算机系统采用多道程序技术实现了并发,调度算法采用
设某多道程序系统中有用户使用内存1000M,打印机1台。系统采用可变分区动态分配算法管理内存,而对打印机采用静态分配。假设输入输出操作时间忽略不计,采用最短剩余时间优先的进程调度算法,进程最短剩余时间相同时采用先来先服务的算法,进程调度时机选择在进程执行结
假设在一台单处理机上执行如下表所示的进程,且假定这些进程在时刻0以1,2,3,4,5的顺序创建。时间单位为时间片,优先级以数值大者为优。(1)请说明分别使用FCFS、RR(时间片=1)、SPF以及非抢夺式优先级调度算法时,这些进程的执行
随机试题
A.鼻腭神经+腭前神经+上牙槽前神经 B.上牙槽后神经+腭前神经 C.下牙槽神经+舌神经 D.上牙槽中神经+上牙槽后神经+腭前神经 E.下牙槽神经+舌神经+颊长神经拔除 下列牙时应麻醉哪组神经下颌第三磨牙
患者,男,42岁。腰椎间盘突出症伴典型的坐骨神经受压体征。检查:小腿前外侧及第1、2趾间背侧皮肤刺痛觉消失,并有伸跗肌力弱,膝及踝反射正常。此椎间盘突出的可能位置是
以下属于判断性信息的是( )。
贷款分类的主要参照因素不包括()。
对仓库中贵重的和易变质的物品,盘点的次数越多越好。()
儿童多动综合症的高峰发病年龄为()。
一位教师兴致勃勃地走进教室,突然发现黑板上画了一幅自己的画像,引起课堂上一阵骚动。下列处理方式,最恰当的一项是()。
下列句子中没有歧义的一句是( )。
阅读以下文字,完成以下问题。大爆炸理论的最直接的证据来自于对遥远星系光线特征的研究。在20世纪20年代美国天文学家埃德温.哈勃测量了18颗恒星(它们距地球的距离是已知的)发出来的光,发现它们都全部存在着红移。哈勃得出结论。这些恒星一定相对于我们(
A、Shecouldn’ttellredfromgreen.B、Shewastoooldtoseethetrafficlight.C、Shedrovetoofasttostopthecar.D、Shewas
最新回复
(
0
)