[数据结构]二叉树概念 您所在的位置:网站首页 抽象数据类型概念 [数据结构]二叉树概念

[数据结构]二叉树概念

#[数据结构]二叉树概念| 来源: 网络整理| 查看: 265

二叉树概念::1.树的概念及结构

树的概念:

树是一种非线性的数据结构,它是由n(n>=0)个有限节点组成一个具有有限关系的集合。把它叫做树,是因为它看起来像一颗倒挂的树,也就是它是根朝上,而叶朝下的。

1.有一个特殊的节点,称为根节点,根结点没有前驱节点 2.除根节点外,其余部分被分成M(M>0)个互不相交的集合T1、T2...Tm,其中每一个集合Ti(10 , i 位置节点的双亲序号: (i-1)/2 ; i=0 , i 为根节点编号,无双亲节点

2. 若 2i+1=n 否则无左孩子

3. 若 2i+2=n 否则无右孩子

1. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( ) A 不存在这样的二叉树 B 200 C 198 D 199 2.下列数据结构中,不适合采用顺序存储结构的是( ) A 非完全二叉树 B 堆 C 队列 D 栈 3.在具有 2n 个结点的完全二叉树中,叶子结点个数为( ) A n B n+1 C n-1 D n/2 4.一棵完全二叉树的节点数位为531个,那么这棵树的高度为( ) A 11 B 10 C 8 D 12 5.一个具有767个节点的完全二叉树,其叶子节点个数为() A 383 B 384 C 385 D 386 答案: 1.B 2.A 3.A 4.B 5.B3.二叉树的存储结构

二叉树的存储结构:

二叉树一般可以使用两种结构存储:一种顺序结构,一种链式结构。

1.顺序存储:

顺序结构存储就是使用 数组来存储 ,一般使用数组 只适合表示完全二叉树 ,因为不是完全二叉树会有空

间的浪费。而现实中使用中只有堆才会使用数组来存储,关于堆我们后面的章节会专门讲解。 二叉树顺 序存储在物理上是一个数组,在逻辑上是一颗二叉树。

 链式存储:

二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。 通常的方法是

链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所

在的链结点的存储地址 。链式结构又分为二叉链和三叉链,当前我们学习中一般都是二叉链,后面课程

学到高阶数据结构如红黑树等会用到三叉链。

typedef int BTDataType; // 二叉链 struct BinaryTreeNode { struct BinTreeNode* _pLeft; // 指向当前节点左孩子 struct BinTreeNode* _pRight; // 指向当前节点右孩子 BTDataType _data; // 当前节点值域 } // 三叉链 struct BinaryTreeNode { struct BinTreeNode* _pParent; // 指向当前节点的双亲 struct BinTreeNode* _pLeft; // 指向当前节点左孩子 struct BinTreeNode* _pRight; // 指向当前节点右孩子 BTDataType _data; // 当前节点值域 };


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有