数据类型:树

数据类型:树

二叉树:一个有穷的节点集合,集合可以为空,若不为空,则它是由根节点和左右两个不相交的二叉树组成,左子树叫TL,右子树叫TR

这五种情况都叫二叉树:

  • 1.空 2.只有A 3.AB 4.AC 5.ABC

  • 还有几种情况有特殊叫法

    • 斜二叉树
    • 满二叉树
    • 完全二叉树

节点

  • Tree: n(n>=0)个节点构成的有限集合
  • N=0叫空树
  • 每个非空的树,都有一个根节点,Root,用r表示。
  • 其余节点可分为m(m>0)个互不相交的有限集合
  • 每个集合又是一棵树,成为原来的子树(SubTree)
  • 树和非树:子树是不相交的,除了根节点外,每个子节点有且只有一个父节点,一棵树N个节点的树有N-1条边

一些基本术语

节点的度(Degree):节点的子树的个数

树的度:树的所有节点中最大的度数

叶子节点(leaf):度为0的节点

父节点(Parent)

子节点(Child)

兄弟节点(Sibiling):具有同一父节点的各节点彼此是兄弟节点

祖先节点:沿树根到某一节点路径上所有节点

子孙节点:某一节点的子树中所有节点

树的深度:树中节点最大层次就是树的深度

二叉树涉及的操作:

1.boolean isEmpty(BT tree),判断BT是否为空

2.Void traversal(Bt tree),按某种顺序遍历

3.BT createBT(),创建一个二叉树

二叉树的遍历方式

先序遍历

  • 1.先访问根节点
  • 2.先序遍历左子树
  • 3.先序遍历右子树

中序遍历

  • 1.中序遍历左子树
  • 2.访问根节点
  • 3.中序遍历右子树

后序遍历

  • 1.后序访问左子树
  • 2.后序遍历右子树
  • 访问根节点

层次遍历

数组可以存储二叉树的数据,也能保证位置和内容的对应,但是在普通二叉树情况下会造成空间浪费

链表结构更适合存储二叉树数据,一个节点有三部分,(left)(data)(right)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值