二叉树的基础知识

原创 2016年05月31日 11:16:07
为何要重点研究结点最多只有两个 “叉” 的树? 
        二叉树的结构最简单,规律性最强; 可以证明,所有树都能转为唯一对应的二叉树。

二叉树的定义
        定义:是n(n≥0)个结点的有限集合,由一个根结点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成 。 
        逻辑结构:  一对二(1:2)  
        基本特征: ① 每个结点最多只有两棵子树(不存在度大于2的结点); ② 左子树和右子树次序不能颠倒(有序树)。 
基本形态:


二叉树的存储结构
一、顺序存储结构 按二叉树的结点“自上而下、从左至右”编号,用一组连续的存储单元存储。
        问:顺序存储后能否复原成唯一对应的二叉树形状? 答:若是完全/满二叉树则可以做到唯一复原。(使用性质5 )而且有规律:下标值为i的双亲,其左孩子的下标值必为2i,其右孩子的下标值必为2i+1(即性质5)例如,对应[2]的两个孩子必为[4]和[5],即B的左孩子必是D,右孩子必为E。

讨论:不是完全二叉树怎么办?
答:一律转为完全二叉树! 方法很简单,将各层空缺处统统补上“虚结点”,其内容为空。

二、链式存储结构
        用二叉链表即可方便表示。一般从根结点开始存储。 (相应地,访问树中结点时也只能从根开始)
        注:如果需要倒查某结点的双亲,可以再增加一个双亲域(直接前趋)指针,将二叉链表变成三叉链表。
二叉树结点数据类型定义: 
typedef struct BiTNode 
{      
        int data;      
        struct BiTNode  *lchild, *rchild; 
} BiTNode, *BiTree;

满二叉树:一棵深度为k 且有2k -1个结点的二叉树。(特点:每层都“充满”了结点)

完全二叉树:深度为k 的,有n个结点的二叉树,当且仅当其每一个结点都与深度为k 的满二叉树中编号从1至n的结点一一对应。
完全二叉树的特点就是,只有最后一层叶子不满,且全部集中在左边。这其实是顺序二叉树的含义。在图论概念中的“完全二叉树”是指n1=0的情况。

它们在顺序存储方式下可以复原!










版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

二叉树的基本操作

二叉树作为一种非常重要的数据结构,今天对其做简单的回顾 1、二叉树的定义 typedef char ElementType; typedef struct BiTreeNode { Eleme...

二叉树基础及应用

二叉树基础: 刚看到堆排序,顺便记录一下关于树的一些基本概念: 前言 前面介绍的栈、队列都是线性结构(linear structure)。而树是非线性结构(non-linear structu...

二叉树基础知识总结

题外话 昨晚面了腾讯,问了一个完全二叉树的题,竟然让我算了快10分钟,因为等比公式记错了导致最后用最原始的方法推算结果也没算对,一下子就懵了。本来精心准备了1周的面试,最后因为自己基础知识记忆不牢固导...

树,二叉树的一些基础知识以及二叉树的建立,存储操作

首先,我们要明白,什么是树?这是大自然中一棵树的模型照片 而在数据结构中的树,会是什么样的结构呢? 树形结构广泛存在我们的现实生活里,下面两张图你一定不陌生吧,第一张是 Linux 文...

Servlet必须掌握的基础知识

1. servlet生命周期   Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。   init():在Servlet的生命周期中,仅执行一次init()...

二叉树基础知识

【边学边记】之二叉树基础知识 二叉树:二叉树是一棵树,其中每个节点都不能有多于两个的儿子。 二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——(a);(...

树和二叉树的一些基础知识

树: 1.树是递归的一种体现,树中有子树 2.树中的子树之间互不相交 3.一棵树由根节点(root),分支节点和叶节点(leaf)组成 或者说是由一个根节点和若干子树构成 4.树的度(degree)是...

基础知识--二叉树 AVL树 红黑树

二叉树、AVL树、红黑树的基础知识。及其用途
  • yhys_
  • yhys_
  • 2017年05月11日 00:07
  • 61

数据结构之二叉树基础知识总结

1、本质问题—— 树不是线性表,是一种描述非线性层次关系的数据结构。是N个数据结点的集合。   2、基本特征—— 有且仅有一个结点没有直接前驱,那就是根节点; 除了根结点外,其他结点有且...

大数据及人工智能基础知识复习系列1 二叉树及二叉搜索树

我将陆续讲解一些人工智能基础理论和算法。帮助大家系统学习人工智能知识。由于现在大家对这方面讨论很多,我将不会重复造车,网络上已有的知识会直接拿来分享。 感谢各位网友的分享精神。 二叉树是数据结构的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二叉树的基础知识
举报原因:
原因补充:

(最多只允许输入30个字)