二叉树

1.树基本概念

这里写图片描述

是一种数据结构,可以用来表示层次关系,因表示的样子很像一颗倒立的树而得名。

1.1树的基本概念

  • 节点的度:一个节点含有的子树的个数称为该节点的度;
  • 叶节点或终端节点:度为0的节点称为叶节点;
  • 非终端节点或分支节点:度不为0的节点;
  • 双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点
  • 孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;
  • 树的度:一棵树中,最大的节点的度称为树的度;
  • 树的高度或深度:树中节点的最大层次
  • 节点的祖先:从根到该节点所经分支上的所有节点;
  • 子孙:以某节点为根的子树中任一节点都称为该节点的子孙
  • 森林:由m(m>=0)棵互不相交的树的集合称为森林;

2.二叉树

二叉树的特征是,除了叶以外的结点,都有两个子。(叶就是在它和根的路径上,没有比他更远的结点了,也可以理解为,只有一个结点和它相连,并且它不是根,那么他就是叶)

2.1满二叉树

一颗深度为k且有2^k-1个结点的二叉树称为满二叉树。
除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。

2.2完全二叉树

若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。

这里写图片描述

2.3二叉树遍历

这里写图片描述

  1. 层次遍历
    按照层次结构进行遍历
    A->B->C->D->E->F

  2. 先序遍历
    遍历顺序为:根节点–>左子节点–>右子节点
    A->B->D->E->C->F

  3. 中序遍历
    遍历顺序为:左子节点–>根节点–>右子节点
    D->B->E->A->F->C

  4. 后续遍历
    遍历顺序为:左子节点–>右子节点 –>根节点
    D->E->B->F->C->A

3.二叉树的实现

3.1节点数据结构

typedef struct node
{
int data; //数据
struct node*  leftchild;//左子节点指针
struct node* rightchild;//右子节点指针
}*ptrnode;

3.2二叉树创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值