关于数据结构中的树--这个我总是学总是忘的东西

  1. 由二叉树的前序和中序遍历结果可以推出整个二叉树的结构;进而可以得到后序遍历的结果。类似的,由后序,中序可以推出二叉树结构。唯独由前序,后序不能推出中序。为什么呢?我想了下,原因很显然,前序中可以明确知道根节点是第一个元素,后序中也只能确定根结点,这样就不能确定左子树和右子树各是哪些元素了。而有了中序遍历的结果就不同了,因为中序遍历可以用已知的根结点将遍历分成左右两部分。
  2. 根据1中的总结,总结一下,如何根据前序遍历和中序遍历的结果将树重构出来。首先,根结点一定是前序遍历的第一个元素,好吧,找到它,然后看在中序遍历中这个元素位于哪里。那么这个元素可以把中序遍历分为左右两个子树。以此类推,可以在纸上很容易就画出树。然后得出它的后序遍历的结果。
  3. 二叉树的概念:不能理解为一种特殊的树,因为它跟树是不同的。首先,二叉树可以为空,其次,有“次序”,也就是说有一些结构看起来不同,但是在树里可能就是相同的结构,而在二叉树里视为不同的结构。二叉树就是度最大为2,有左右子树之分,次序不能任意颠倒。
  4. 完全二叉树:每一层次的节点可以与满二叉树编号的结点一一对应。
  5. 满二叉树:每一层次上的节点数目达到最大的二叉树。满二叉树当然是完全二叉树。
  6. 平衡二叉树
  7. 二叉树的存储结构有两种。一种是顺序的,也就是按树的层次,从根结点开始一层一层遍历,将结点的值存到数组里,遇到一层上结点为空则用0代替;另一种是链式的存储,一般是定义一个结构体,包括value,左孩子,右孩子。还有一种是多了一个指向根结点的指针。
  8. 二叉树的一些特性总结,见严蔚敏的数据结构书123页
  9. 堆其实就是一种完全二叉树。只是根的关键字一定小于或等于它的孩子结点的关键字。
  10. 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为小根堆,又称最小堆.
    根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆,又称最大堆.
    注意:
    ①堆中任一子树亦是堆。
    ②以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆。
  11. 二叉查找树的平均查找长度为O(log2n)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值