
发表日期: 2021-04-14 15:17:18 浏览次数:123
馆陶申请400电话费用【馆陶企业全国热线电话办理】馆陶开通400电话电信价格、馆陶微信公众号代运营外包托管、馆陶网店编辑装修美工、馆陶网站推广优化大概需要多少钱
馆陶县,河北省邯郸市下辖县 [1] ,地处河北省东南部,以卫运河为界与山东省冠县、临清市毗邻。全县辖4镇4乡277个行政村,总面积456平方公里,其中耕地面积48万亩,总人口36万人。馆陶是千年古县,赵王“在城(今冠县东古城)西北七里陶丘侧置馆,故名馆陶”,自西汉初置县,已有2200多年历史。
馆陶县先后荣获中国蛋鸡之乡、中国黑陶艺术之乡 、中国粮画之乡、中国轻工轴承之乡、中国黄瓜之乡、中国漆画艺术之乡、全国休闲农业和乡村旅游示范县、全国电子商务进农村示范县、全国义务教育发展基本均衡县、全国中医工作先进县、全国群众体育工作先进县等等30余项国家级殊荣。
近年来,馆陶县着力打造了五张名片。一是“最大”,禽蛋交易市场金凤市场,单体全国最大,鸡蛋远销广东、广西等地,2016年交易额达到110亿元;二是“最优”,馆陶是中国著名的黑陶艺术之乡,现代黑陶艺术经过馆陶人的继承和创新,达1000多个品种;三是“最好”,馆陶是中国唯一的黄瓜之乡,馆青牌黄瓜,连续四年荣获中国绿色博览会金奖;四是“最佳”,馆陶有独一无二的富含三价有机铬的黑小麦,可应用于抑制血糖和抗肿瘤等医学领域;五是“最美”,粮画小镇被评为“中国十大最美乡村”,即将由3A级景区升级成为国家4A级旅游景区。 [2-6]
2020年4月,被河北省体育局评选为“2019年度体育工作最佳县(市、区)”。
指向Grumpy左子节点的指针为NULL,所以在第(1)行必须创建一个新节点。这棵单节点树会返回给Grumpy节点处对insert的调用,而且在第(7)行该树会被安置为Grumpy左子节点的值。带有Grumpy和Filthy的修改过的树会返回给标号为Bashful的节点处对insert的调用。然后,以Bashful为根节点的新树就成了整棵树根节点的左子树。最终的树如图5-36所示。

图 5-36 插入Filthy之后的二叉查找树
从二叉查找树中删除某个元素x 要比查找或插入复杂一些。首先,要找出含有x 的节点;如果没有这样的节点,就算是完事了,因为x 不在这棵要处理的树里头。如果x 在叶子节点处,那么直接删除该叶子节点就行了。不过,如果x 是某个内部节点n,就不能直接删除该节点,因为这样做会破坏树的连通性。
我们必须以某种方式对树进行重新排列,从而在维持二叉查找树属性的同时让x 从树中消失。这会有两种情况。第一种,如果n 只有一个子节点,就用该子节点代替n,这样二叉查找树的属性就得到了保持。
第二种情况,假设n 的两个子节点都存在。一种策略就是找到标号为y 的节点m,它是n 右子树中最小的元素,并在节点n 处用y 代替x,如图5-37所示。然后就可以从右子树中删除节点m。

图 5-37 要删除x,先删除包含右子树中最小元素y 的节点,然后将节点n处的标号由x 替换为y
此时二叉查找树属性继续成立。原因在于,x 比n 的左子树中的所有元素都大,而y 大于x(因为y 在n 的右子树中),所以y 也比n 左子树的所有元素都大。因此,就n 的左子树而言,y 是适合于位置n 的元素。而对n 的右子树来说,y 也是适合作为根节点的,因为选出的y 是右子树中的最小元素。
ETYPE deletemin(TREE *pT)
{
ETYPE min;(1) if ((*pT)->leftChild == NULL) {(2) min = (*pT)->element;(3) (*pT) = (*pT)->rightChild;(4) return min;
}
else(5) return deletemin(&((*pT)->leftChild));
}复制代码图 5-38 deletemin(pT)函数会删除并返回T 的最小元素
如图5-38所示,可以很方便地定义deletemin(pT)函数从非空二叉查找树中删除含最小元素的节点,并返回最小元素的值。我们给该函数传入的参数是指向树T 的指针的地址。该函数中所有对T 的引用都是通过该指针间接完成的。
我们给函数传入的参数,是指向某个位置的指针,而在这个位置可以找到指向节点(即树)的指针,这种风格的树操作叫作按引用调用。这在图5-38中是很关键的,因为第(3)行的指针指向左子节点为NULL的节点m,我们希望将这一指针替代为另一个指针,节点m 的rightChild字段中的指针。如果deletemin的参数是指向节点的指针,那么这种改变就会在对deletemin的调用中发生,而且树中的指针其实不会改变。顺便说一下,也可以使用按引用调用来实现插入操作。在那种情况下,可以直接对树进行修改,而不必像图5-35中所做的那样返回修改过的树。这里将这一修订过的insert函数留作本节习题。
现在来看看图5-38的工作原理。沿着左子节点向下寻找,直到在图5-38的第(1)行找到左子节点为NULL的节点,就找到了最小的元素。在该节点m 处的元素y 一定是该子树中最小的元素。原因在于,这里完全是循着左子节点向下寻找的,这样一来y 要比m 在该子树中的任一祖先都小。而子树中其他节点要么是在m 的右子树中,根据二叉查找树属性这些元素肯定大于y,要么是在m 的某个祖先的右子树中。右子树中的元素肯定比m 的某个祖先处的元素大,因此也就大于y,如图5-39所示。

图 5-39 右子树中所有其他元素都大于y
在子树中找到最小的元素后,在第(2)行会记录下它的值,并在第(3)行用它的右子树代替最小元素所在节点。请注意,在从子树中删除最小元素时,总是有着最简单的删除情况,因为不存在左子树。
还有一点与deletemin相关的内容就是,当第(1)行的测试失败时,就意味着还没到达最小元素,就要继续处理左子节点。这一步骤是通过第(5)行的递归调用完成的。
deletemin(x,pT)函数如图5-40所示。如果pT指向空树T,就没什么要做的,而且第(1)行的测试会确保什么事都没做。此外,第(2)行和第(4)行的测试会处理x 不在根节点的情况,会根据具体情况重定向到左子树或右子树。如果到达第(6)行,那么x 就一定在T 的根节点位置,而且我们必须替换该根节点。第(6)行会测试左子节点是否可能为NULL,若为NULL,那么就可以在第(7)行直接将T 替换为其右子树。同样地,如果在第(8)行发现右子节点为NULL,那么就用T 的左子树来替代T。请注意,如果根节点的两个子节点都为NULL,那么就在第(7)行将T 替换为NULL。
void delete(ETYPE x, TREE *pT)
{
(1) if ((*pT) != NULL)
(2) if (x < (*pT)->element)
(3) delete(x, &((*pT)->leftChild));
(4) else if (x > (*pT)->element)
(5) delete(x, &((*pT)->rightChild));
else /* 这里,x 在(*pT)的根节点处 */
(6) if ((*pT)->leftChild == NULL)
(7) (*pT) = (*pT)->rightChild;
(8) else if ((*pT)->rightChild == NULL)
(9) (*pT) = (*pT)->leftChild;
else /* 这里的两个子节点都不为NULL */(10) (*pT)->element =
deletemin(&((*pT)->rightChild));
}复制代码图 5-40 delete(x,pT)函数从T 中删除元素x
两个子节点均不为NULL的情况是在第(10)行处理的。在这里会调用deletemin,返回右子树的最小元素y,并从该子树中删除y 。第(10)行的赋值操作会在T 的根节点处用y 代替x 。
如果使用类似delete(但能够比较字符串)的函数从图5-36中的二叉查找树删除Hairy,结果如图5-41所示。因为Hairy在具有两个子节点的节点中,所以delete会调用deletemin函数,从根节点的右子树中删除并返回最小的元素Happy,然后Happy就成了曾存放Hairy的该树根节点的标号。

图 5-41 删除Hairy后的二叉查找树
馆陶申请400电话费用【馆陶企业全国热线电话办理】馆陶开通400电话电信价格、馆陶微信公众号代运营外包托管、馆陶网店编辑装修美工、馆陶网站推广优化大概需要多少钱
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878