- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构面试题精选.
特别说明:本文中二叉树结构定义为:struct Node { Node* left; Node* right; int data;};定义:空二叉树的高度为-1,只有根节点的二叉树高度为0,根节点在0层,深度为0。求二叉树中相距最远的两个节点之间的距离两个节点的距离为两个节点间最短路径的长度。求两节点的最远距离,实际就是求二叉树的直径。假设相距最远的两个节点分别为A、B,它们的最近共同父节点(允许一个节点是其自身的父节点)为C,则A到B的距离 =?A到C的距离 + B到C的距离。节点A、B分别在C的左右子树下(假设节点C的左右两子树均包括节点C),不妨假设A在C的左子树上,由假设“A到B的距离最大”,先固定B点不动(即B到C的距离不变),根据上面的公式,可得A到C的距离最大,即点A是C左子树下距离C最远的点,即:A到C的距离 = C的左子树的高度。同理,??B到C的距离 = C的右子树的高度。因此,本问题可以转化为:“二叉树每个节点的左右子树高度和的最大值”。判断二叉树是否平衡二叉树根据平衡二叉树的定义:每个结点的左右子树的高度差小等于1,只须在计算二叉树高度时,同时判断左右子树的高度差即可。二叉树的广度遍历(某层)若需要对同一层的节点数据进行一些特殊操作(比如:打印完一层后换行、只打印某一层),可以记录某一层的最后一个节点,当遍历完该节点时(此时,队列的中的最后一个元素恰好就是下一层的最后一个节点),再进行这些特殊操作。指定二叉树,给定两节点求其最近共同父节点遍历二叉树时,只有先访问给定两节点A、B后,才可能确定其最近共同父节点C,因而采用后序遍历。可以统计任一节点的左右子树“是否包含A、B中的某一个”(也可以直接统计“包含了几个A、B”)。当后序遍历访问到某个节点D时,可得到三条信息:节点D是否是A、B两节点之一、其左子树是否包含A、B两节点之一、其右子树是否包含A、B两节点之一。当三条信息中有两个为真时,就可以确定节点D的父节点(或节点D,如果允许一个节点是自身的父节点的话)就是节点A、B的最近共同父节点。另外,找到最近共同父节点C后应停止遍历其它节点。上面的代码中需要特别注意的是:判断所访问时节点是否是两节点A、B时要写成const?int?mid?=?(root?==?va)?+?(root?==?vb);而不是:?const?int?mid?=?(root?==?va)?|?(root?==?vb);这样当va等于vb时,可以得到正确结果。二叉树的高度求二叉树中叶子节点的个数交换二叉树的左右儿子从根节点开始找到所有路径,使得路径上的节点值和为某一数值(路径不一定以叶子节点结束)这道题要找到所有的路径,显然是用深度优先搜索(DFS)啦。但是我们发现DFS所用的栈和输出路径所用的栈应该不是一个栈,栈中的数据是相反的。看看代码:注意使用的两个栈。二叉树“弓”字形遍历题目描述:对二叉树进行“弓”字形遍历,即第一层从左往右遍历,第二层从右往左遍历,第三层从左往右遍历.....思路:传统的广度优先遍历,只需一个队列即可,但只能实现每层从左往右遍历。这里可以设两个栈,分别存放相邻两层的节点,先将某层节点存入一个栈,对这个栈的每个节点进行访问和出栈操作,在出栈的同时把它的孩子节点存入另一个栈,当这层的每个节点都操作完毕后,同时也实现了下一层节点在另一个栈的入栈操作。要注意的是,相邻两层的节点入栈的顺序是相反的,这样才能实现“弓”字形遍历。在这边可以控制一个flag状态量,当栈中为空时,判断flag是否等于0,如果等于0则从左到右,否则就是从右到左平衡二叉树(AVL树)是一棵二叉查找树(BST),任意一棵子树,其左右子树的高度差不大于1四种变形LL型RR型LRRL判断二叉树是不是完全二叉树红黑树一般的,红黑树,满足以下性质,即只有满足以下全部性质的树,我们才称之为红黑树:1)每个结点要么是红的,要么是黑的。2)根结点是黑的。3)每个叶结点,即空结点(NIL)是黑的。4)如果一个结点是红的,那么它的俩个儿子都是黑的。5)对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。这些约束强制了红黑树的关键性质:最短的可能路径都是黑色节点,最长的可能路径有交替的红色和黑色节点。因为根据属性5所有最长的路径都有相同数目的黑色节点,这就表明了没有路径能多于任何其他路径的两倍长。因为每一个红黑树也是一个特化的二叉查找树,因此红黑树上的只读操作与普通二叉查找树上的只读操作相同。然而,在红黑树上进行插入操作和删除操作会导致不再符合红黑树的性质。恢复红黑树的属性需要少量(O(log?n))的颜色变更(实际是非常快速的)和不超过三次树旋转(对于插入操作是两次)。虽然插入和删除很复杂,但操作时间仍可以保持为 O(log?n) 次。首先用与二
您可能关注的文档
最近下载
- DGTJ08-2001-2016 基坑工程施工监测规程.docx VIP
- 污泥( 废水)运输服务方案(技术方案).doc
- 中国特色国有企业公司治理结构的形成和发展 2025.docx
- 初中英语语法大全.pdf VIP
- 八升九分班考数学试卷.docx VIP
- DB3711_T 165-2025 中小企业劳动用工风险防控服务规范.pdf VIP
- DB3711_T 167-2025 夏玉米病虫害绿色防控技术规程.pdf VIP
- 北师大版八升九数学试卷.docx VIP
- 原子结构 高一化学人教版(2019)必修第一册.pptx VIP
- 沃尔沃-V90 Cross Country-产品使用说明书-2020款 T5 AWD 智尊版-V90CC T5 PZ10GC1-3110819w46V90CC_OMA~Z.pdf
文档评论(0)