二叉树的基础知识
来源:互联网 发布:数据专业问答题 编辑:程序博客网 时间:2024/05/18 21:39
为何要重点研究结点最多只有两个 “叉” 的树?
二叉树的结构最简单,规律性最强; 可以证明,所有树都能转为唯一对应的二叉树。
二叉树的定义
定义:是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的情况。
它们在顺序存储方式下可以复原!
2 0
- 二叉树的基础知识
- 二叉树的基础知识
- 树和二叉树的一些基础知识
- 二叉树基础知识规律
- 【数据结构】二叉树基础知识
- 二叉树基础知识总结
- 二叉树基础知识
- 二叉树的一些基础知识及创建、遍历
- 树,二叉树的一些基础知识以及二叉树的建立,存储操作
- 基础知识--二叉树 AVL树 红黑树
- 数据结构之二叉树基础知识总结
- 一步一步学习数据结构(4)-树和二叉树基础知识
- 面试基础知识整理 —— 二叉搜索树
- 二叉树基础知识大全(核心理解遍历)
- 大数据及人工智能基础知识复习系列1 二叉树及二叉搜索树
- 表达树的基础知识
- 数据结构:树的基础知识
- 树的基础知识
- 用DeflateStream和GZipStream压缩数据
- Fake Objects
- Java 八种排序算法比较实践
- linux进程通信--消息队列
- 目诊知识2
- 二叉树的基础知识
- 2016第七届美国新泽西国际武术锦标赛五月底在大西洋城开赛
- Oracle SQL日期比较
- java 初始化
- linux80端口启动访问项目
- typeof关键字是C语言的应用
- 136. Single Number
- RecyclerView IndexOutOfBoundsException 引出的RecyclerView 的使用方法总结
- 【游戏中的算法】取火柴游戏算法