当前位置: 网站首页>小程序开发>网站开发

承德网站制作要多少钱【域名企业邮箱服务器注册申请办理】承德网络优化公司哪家好、承德软件开发外包价格、承德高端企业网站页面制作设计专业公司、承德微信公众号小程序购物支付搭建制作公司

发表日期: 2021-04-13 11:21:29 浏览次数:70

承德网站制作要多少钱【域名企业邮箱服务器注册申请办理】承德网络优化公司哪家好、承德软件开发外包价格、承德高端企业网站页面制作设计专业公司、承德微信公众号小程序购物支付搭建制作公司


承德,河北省地级市,河北省政府批复确定的河北国际旅游城市、连接京津辽蒙的区域性中心城市 [1]  。截至2019年,全市下辖3个区、4个县、代管1个县级市和3个自治县,总面积39519平方公里,常住人口347.32万人,城镇人口180.85万人,城镇化率52.07%。 [2] 

承德地处中国东北地区、河北省东北部,南邻京津,北接赤峰和锡林郭勒,东西与朝阳、秦皇岛、唐山、张家口相邻,距省会石家庄435公里,距北京225公里。 [3]  是连接京津冀辽蒙的重要节点,具有“一市连五省”的独特区位优势,是国家甲类开放城市,中国普通话标准音采集地、中国摄影之乡、中国剪纸之乡。 [4] 

承德是首批国家历史文化名城,1703年清康熙修建避暑山庄,成为清王朝的第二个政治中心;1723年设热河厅;1733年雍正取“承受先祖德泽”之义;赐字“皇承天德”释义先皇秉承天地化育万物的恩德; [5]  设承德直隶州,始称“承德”;民国和解放初期为原热河省省会;1955年,热河省建制撤销,承德划归河北省,为省辖市。承德的避暑山庄及其周围寺庙是中国十大风景名胜、旅游胜地四十佳、国家重点风景名胜区,被联合国教科文组织批准为世界文化遗产,也是国家首批世界文化遗产。 [4] 

2012年,承德被评为中国“十大特色休闲城市”。2016年11月,承德市被中华人民共和国国家旅游局评为第二批国家全域旅游示范区。2017年10月,承德市入选国家森林城市。 [6]  2017年12月,获得“厕所革命优秀城市奖”。


5.7.5 习题

1. 假设使用最左子节点右兄弟节点表示法实现二叉查找树。重新编写适用于这一数据结构的实现了插入删除查找这些词典操作的函数。

2. 如果按顺序插入单词:DocDopeyInkyBlinkyPinkySue,会使图5-33中的二叉查找树变成什么样?然后,依次删除DocSleazyHairy后又会怎样?

3. 用对字符串的词典比较代替对整数的算术比较,重新编写lookupinsertdelete函数。

4. * 重新编写insert函数,使得树参数可以按引用传递。

5. * 在本节中,我们曾以“按引用调用”的方式编写过delete函数。不过,也可以用编写insert函数的风格编写该函数,即接受树作为参数,而不是接受指向树的指针作为参数。编写这一版本的delete操作。注意:让deletemin返回修改过的树并非真正可能,因为它还必须返回最小的元素。我们可以重新编写deletemin,使其返回同时具有新树和最小元素的结构体。

6. 要删除带有两个子节点的节点,除了通过在右子树中找到最小元素,还可以在左子树中找到最大的元素,并用它替代删除的元素。重新编写来自图5-38和图5-40的deletedeletemin函数,从而融入这种修改。

7. * 在需要删除某个具有父节点p、(非空的)左子节点l 和(非空的)右子节点r 的节点n 处的元素时,另一种处理删除操作的方式是,找出n 的右子树中存放最小元素的节点m。接着,让r 代替n 成为p 的左子节点或右子节点,并让l 成为m 的左子节点。请注意,m 之前不能有左子节点。证明这一系列改变为何会保留二叉查找树属性。大家是否愿意选择这一策略替代5.7节中描述过的那种?提示:对这两种方式而言,考虑它们对路径长度的影响。正如我们将在5.8节中看到的,短路径会让操作运行得更迅速。

8. * 在本习题中,考虑图5-39所示的二叉查找树。通过对i 的归纳证明,如果1≤ik,那么yzi 。然后,证明y 是以zk 为根节点的树中最小的元素。

9. 编写完整的C语言程序,实现存储整数的词典。接受形为xi 的命令,其中x是字母i(插入)、d(删除)和l(查找)中的一个。整数i 是该命令的参数,就是有待插入、删除或查找的整数。

5.8 二叉查找树操作的效率

二叉查找树提供了一种相当快速的词典实现。首先请注意,插入删除查找操作各会进行若干次递归调用,调用次数等于所经过的路径的长度。但该路径必须包含达到右子树最小元素的路线,以防deletemin被调用。对lookupinsertdeletedeletemin函数进行简单的分析,可知各操作都花费O(1)的时间,而且要加上一次递归调用的时间。此外,因为该递归调用总是在当前节点的子节点处进行的,所以每次成功调用中节点的高度至少要减少1。

因此,如果以指向某个高度为h 的节点的指针调用这些函数所花的时间为T(h),就有以下递推关系来为T(h)确定上界。

依据T(0)=O(1)。也就是说,在对叶子节点调用函数时,该调用要么终止,不再有进一步的调用,要么以NULL参数进行一次递归调用,接着会返回而不再继续调用。这些工作所花时间为O(1)。

归纳。对h≥1,T(h)≤T(h-1)+O(1)。也就是说,对任何内部节点调用函数所花的时间,都等于O(1)加上对高度至多为h-1的节点进行一次递归调用所花的时间。如果作出T(h)会随着h 的增加而增加这一合理假设,那么该递归调用的时间不会大于T(h-1)。

该递推关系的解是O(h),正如3.9节中讨论过的那样。因此,对具有n 个节点的二叉查找树执行词典操作的运行时间至多与该树的高度成比例。不过具有n 个节点的二叉查找树通常高度为多少呢?

5.8.1 最坏情况

在最坏的情况下,二叉树的所有节点都排列在一条路径上,就像图5-42所示的树那样。例如,取一列有序的k个元素,将这些元素一个个地依次插入一棵空树,就可以形成这样的树。也有不全由右子节点组成,而是由左右子节点混合组成的单路径树,其路径上的内部节点既可能是左子节点也可能是右子节点。

图 5-42 退化的二叉树

像图5-42这样具有k 个节点的树的高度显然为k-1。因此可以预见,如果具有k 个元素的词典的表示不幸是这些树中的一种,那么查找插入删除操作所花时间都会是O(k)。从直觉上讲,如果需要查找某个元素x,平均需要走过一半路径才会找到它,需要查看k/2个节点。如果这还没有找到x,就需要继续向下搜索该树,直到到达x所在的位置为止,平均也要走过该路线的一半。因为查找插入删除操作都涉及元素的查找,所以可知,在给定图5-42所示树的最坏情况下,这些操作平均要花的时间都是O(k)。

5.8.2 最佳情况

不过,二叉树不一定非得像图5-42这样又高又瘦,它也可以是图5-43这种分枝丛生的低矮样式。而后者这样的树,每个内部节点向下到某层的两个子节点都存在,而且下一层的所有叶子节点也都存在,这样的结构叫作完全树或完整树。

图 5-43 有7个节点的完全二叉树

高度为h 的完全二叉树共有2h+1-1个节点。我们可以通过对高度h 的归纳证明这一声明。

依据。如果h=0,那么该树由一个节点组成。因为20+1-1=1,所以依据情况成立。

归纳。假设高度为h 的完全二叉树有nh+1-1个节点,并考虑高度为h+1的完全二叉树。该树有一个根节点,并由两棵高度为h 的完全二叉树分别作为其左右子树。例如,图5-43中高度为2的完全二叉树包含根节点n1,由n2n4n53个节点构成的左子树(高度为1的完全二叉树),以及由其余3个节点构成的右子树(另一棵高度为1的完全二叉树)。根据归纳假设,两棵高度为h 的完全二叉树共有2(2h+1-1)个节点。在加上根节点后,可知高度为h+1的完全二叉树共有2(2h+1-1)+1=2h+2-1个节点,这就证明了归纳步骤。

现在可以将这一关系反转,说一棵具有k=2h+1-1个节点的完全二叉树高度为h。这样一来,k+1=2h+1。两边取对数,就有log2(k+1)=h+1,或者大致可以说h 是O(logk )。因为查找插入删除的运行时间都与树的高度成比例,所以这些操作所花的时间是节点数的对数。这样的性能要比图5-42所示最糟情况所花的线性时间强多了。随着词典的大小越来越大,词典操作运行时间的增长要比集合中元素的增长慢得多。

5.8.3 一般情况

图5-42所示情况和图5-43所示情况哪个更普遍?其实,两者在实践中都不常见,不过图5-43中的完全树提供的词典操作效率与一般情况的效率是近似的。也就是说,平均情况下,查找插入删除花费的都是对数时间。

要证明一般二叉树可以提供对数时间的词典操作是很难的。证明的要点在于,从这样的树的根节点到某个随机节点的路径长度的期望值是O(logn)。本节习题中将给出这一期望值的递推等式。

不过,我们可以直观地看出这为什么应该是正确的运行时间,理由如下。二叉树的根节点会将除它自己之外的节点分为两棵子树。在最平均的分布中,一棵有k 个节点的树将会有两棵各有约k/2个节点的子树。如果根节点元素刚好是在一列有序元素的正中位置,就会形成这种情况。而在最坏的分布中,根节点元素是词典中的第一个或最后一个元素,这样就会使一棵子树为空,而另一棵子树中有k-1个元素。

平均而言,可以预期根节点是在已排序表正中和极端之间,而且可以预期约有k/4个节点在较小的子树中,另外的3k/4个节点在较大子树中。假设在向下探索树的过程中,每次递归调用时始终移动到较大子树的根节点,而且类似的假设适用于每层元素的分布。在第一层,较大子树会按照1:3的比例划分,在第二层留下共有(3/4)(3k/4),即9k/16个节点的最大子树。因此,可以预见在第d 层的最大子树约有(3/4)dk 个节点。

如果d 变得足够大,那么(3/4)dk 的量会接近1。而且可以预见,在这一层,最大子树将是由一个叶子节点组成的。因此要问,d 为什么值可以使(3/4)dk≤1?如果取以2为底的对数,就得到

d log2(3/4)+log2k≤log21      (5.1)

现有log21=0,且log2(3/4)是一个负常数,约为-0.4。因此可将(5.1)式重新写为log2k≤0.4d,或a≥(log2k )/0.4=2.5log2k

换句话说,在深度约为节点数以2为底的对数的2.5倍的位置(或是在更高的层数),就有望全是叶子节点了。这一论述证实了(但并未证明)一般二叉查找树的高度与该树节点数的对数成正比这一陈述。

5.8.4 习题

1. 如果树T 高度为h,而且分支系数为b,那么树T 最多可以有多少个节点,最少有多少个节点?

2. ** 进行如下实验,从n 个不同值的n !种顺序中任选一种,并按照这一顺序将这些值插入一棵空的二叉查找树中。设P(n)是实验后这n 个值中某个特定值v 所在节点的深度的期望值。

(a) 证明,对n≥2,

P(n)=1+\frac{2}{n^2}\sum^{n-1}_{k=1}kP(k)

(b) 证明P(n)是O(logn)。


承德网站制作要多少钱域名企业邮箱服务器注册申请办理承德网络优化公司哪家好、承德软件开发外包价格、承德高端企业网站页面制作设计专业公司、承德微信公众号小程序购物支付搭建制作公司

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878