(word)数据结构面试题精选.docxVIP

  • 3
  • 0
  • 约 15页
  • 2016-08-16 发布于北京
  • 举报
(word)数据结构面试题精选

特别说明:本文中二叉树结构定义为: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,只须在计算二叉树高度时,同时判断左右子树的高度差即可。二叉树的广度遍历(某层)若需要对同一层的节点数据进行一些特殊操作(比如:打印完一层后换行、只打印某一层),可以记录某一层的最后一个节点,当遍历完该节点时(此时,队列的中的最后一个元素恰好就是下一层的

文档评论(0)

1亿VIP精品文档

相关文档