数据结构之查找课件(编辑修改稿)内容摘要:
return (search (bright,k))。 } } 非递归算法 btree treesearch (BSTree *b, int k) { BSTree *p。 p=b。 while(p!=NULL)。 { if (pdata==k) return (p)。 else if (kpdata) p=pleft。 else p=pright。 } return (NULL)。 } 二叉排序树查找分析 树型查找最坏情况时,需要的查找时间取决于树的高度,当二叉排序树接近满二叉树时,其高度为 log2n,最坏情况下查找时间为 O(log n),与二分查找是同样数量级的;当二叉排序树为只有一个端结点的所谓“退化树”时,其高度等于 n,最坏情况下查找时间为 O(n),与顺序查找属于同一数量级。 为了保证树型查找有较高的查找速度,我们希望该二叉树接近满二叉树,也就是希望二叉树的每一个结点的左、右子树高度尽量接近平衡,即使按任意次序不断地插入结点,也不要使此树成为退化树。 图 两个二叉排序树 45 24 53 12 37 100 12 45 24 100 53 37 在二叉排序树上插入结点 基本思想 插入结点的非递归算法 Void insertbst(BSTree *tptr,*s) /*tptr指向根 {…… /*s 指向要插入的结点 slchild=srchild=null。 If (tptr==null) { tptr=s。 return。 } else { p=tptr。 While(p!=null) { if (pkey==skey) return。 /*无需插入 q=p。 /*q记录 p的父亲 if (skey pkey) /*寻找要插入的位置 p=plchild。 else p=prchild。 } If ( skeyqkey) /*至此 ,q指向的是 qlchild=s。 /*要插入结点 s的父 else qrchild=s。 /*结点 } } 在二叉排序树上删除结点 在二叉排序树中删除一个结点后,要使剩余的结点仍为二叉排序树。 设被删除的结点为 P, 且 P为 F的左儿子(若为右儿子时,道理相同)。 1. P无儿子 删除 P, 修改有关指针 flchild=null 2. P只有一个儿子 设 P只有左儿子 Pl(或右儿子 Pr), 只要令 Pl (或 Pr )成为 F的左儿子即可。 Flchild=plchild 或 Flchild=prchild 3. P有两个儿子时,有两种方法。 设 P的前驱为 S. ( 1)令 P的左子树成为 F的左子树, P的右子树成为 S的右子树。 Flchild=plchild。 r=prchild。 /*r为临时变量 S=flchild。 While(srchild != null) s=srchild。 S=r。 /*使 P的右子树成为 S的右子树 ( 2)使 P的前驱 S代替 P,然后删除 S. 若 S有左儿子,则用 S的左儿子代替 S的位置。 设 Q为 S的父亲。 q=p。 S=plchild。 While(srchild != null) { q=s。 S=srchild。 /*找 P左子树最右下方的结点 S } Pkey=skey。 If (q!=p) qrchild=slchild。 Else qlchild=slchild。 /*当 Q=P时, S即为 P的左儿子,此时把 S的左儿子作为 P的左儿子 平衡树 平衡树 (Balanced tree)也称为 AVL树,是由阿德尔森 — 维尔斯基和兰迪斯 (Adelsonvelskii and landis)于 1962年首先提出的。 这是一种附加了一定限制条件的二叉树。 我们定义二叉树中每一结点的左子树高度减右子树高度为该结点的平衡因子( Balance factor),所谓平衡树,是指一个二叉树其任一结点的平衡因子值只能是 +1, 0或 1,即任一结点的左、右子树高度之差不超过 1。 如图 ,图中数字为该结点的平衡因子。 平衡树 平衡二叉树 1 1 1 1 0 0 0 1 2 0 0 1 0 不平衡二叉树 假设给平衡树某个结点的左子树插入一个新结点,且此新结点使左子树的高度加 1,我们可能会遇到以下三种情况: (1) 如果原来其左子树高度 hl与右子树高度 hr相等 ,即原来此结点的平衡因子等于 0,插入新结点后将。数据结构之查找课件(编辑修改稿)
相关推荐
ration, Data Warehouses Data Sources Paper, Files, Web documents, Scientific experiments, Database Systems 数据库管理员 OLAP 商务智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具。 一般由数据仓库、联机分析处理、数据挖掘、数据备份和恢复等部分组成。
)。 对辅助数组初始化时间为 O(n)。 因此,当用邻接表作为图的存储结构时,广度优先搜索图的时间复杂性为 O(e+n)。 返回 最小生成树 在一个无向连通图 G中,如果取它的全部顶点和一部分边构成一个子图 G’,若边集 E(G’)中的边刚好将图的所有顶点连通但又不形成环路,我们就称子图 G’是原图 G的生成树( Spanning tree)。 生成树有如下特点
HDL 或 VHDL),原理图 ,逻辑图表示设计结果 ,有时也采用布尔表达式来表示设计结果。 电路设计 (Circuit Design):电路设计是将逻辑设计表达式转换成电路实现。 华侨大学 IC设计中心 38 第四阶段:时序验证与版图设计 任务 :静态时序分析从整个电路中提取出所有时序路径,然后通过计算信号沿在路径上的延迟传播,找出违背时序约束的错误 (主要是 SetupTime 和
y or accuracy ( also known as rule reliability , rule strength, rule quality, certainty factor, discriminating weight )等 . 有用性 (utility) 如: support (association),s(A=B)=n(A nd B)/n(all), noise
[support = 2%, confidence = 72%] 酸奶占 奶制品 25% 我们称第一个规则是第二个规则的祖先 参考规则的祖先,如果他的支持度与我们“预期”的支持度近似的话,我们就说这条规则是冗余的。 2020/9/15 数据挖掘:概念和技术 33 数据挖掘查询的逐步精化 为什么要逐步精化 挖掘操作的代价可能高或低,结果可能过细致或粗糙 在速度和质量之间折衷
方法及步骤 ( 1)使能 LFP功能,设备处于可测试模式; ( 2)按下 E1LP按钮,设备的 E1接口处于自环回模式; ( 3)按下 PATT按钮,设备向 E1接口发送伪随机序列并实时比较。 现象 E1接口接收的码流与发送的伪随机序列一致的时候,TSTOK指示灯点亮;如果不一致, TSTOK灯将不会被点亮。 结论 TSTOK指示灯点亮,设备自检通过。 TSTOK指示灯点不亮,设备自检失败。