数据结构中树与二叉树的区别在于?
二叉树是指一个树的父节点最多只有两个子节点构成的树,树是不限制子节点的个数的。
二叉树是树的一种特例,是树的子集。
三个节点是无法表示出二叉树和树的区别的,需要三个以上的节点。
二叉树的表示如下图。
树的表示如下图。
扩展资料:
树图是一种数据结构,由n (n>=1)个有限节点组成具有层次关系的集合。它被称为树是因为它看起来像一棵倒立的树,意思是它的根是向上的,叶子是向下的。它具有以下特点:
每个节点有零个或多个子节点;没有父节点的节点称为根节点;每个非根节点都有且只有一个父节点;除了根之外,每个子树还可以分为多个不相交的子树。
相关术语
节点的度:节点中包含的子树数称为节点的度;
叶节点或终端节点:度为0的节点称为叶节点;
非终端节点或分支节点:度不为0的节点;
父节点或父节点:如果一个节点包含子节点,该节点称为子节点的父节点;
子节点或子节点:一个节点包含的子树的根节点称为该节点的子节点;
同级节点:具有相同父节点的节点称为同级节点。
树度:在树中,最大节点的度称为树的度;
节点层次结构:从根开始,根是第一层,根的子节点是第二层,依此类推。
树的高度或深度:树中节点的最大级别;
表亲节点:父节点在同一层的节点是彼此的表亲;
节点的祖先:从根节点到该节点所经过的分支的所有节点;
子代:根于某一节点的子树中的任何节点称为该节点的子代。
森林:以m (m>=0)相交的树的集合称为森林;
参考资料:
1.二叉树的基本形态:
二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:
(1)空二叉树——(a);
(2)只有一个根结点的二叉树——(b);
(3)右子树为空的二叉树——(c);
(4)左子树为空的二叉树——(d);
(5)完全二叉树——(e)
注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形。
2.两个重要的概念:
(1)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树;
(2)满二叉树——除了叶结点外每一个结点都有左右子女且叶结点都处在最底层的二叉树,。
3.二叉树的性质
(1) 在二叉树中,第i层的结点总数不超过2^(i-1);
(2) 深度为h的二叉树最多有2h-1个结点(h>=1),最少有h个结点;
(3) 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,
则N0=N2+1;
(4) 具有n个结点的完全二叉树的深度为int(log2n)+1
(5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:
若I为结点编号则 如果I1,则其父结点的编号为I/2;
如果2*IN,则无左儿子;
如果2*I+1N,则无右儿子。
4.二叉树的存储结构:
(1)顺序存储方式
type node=record
data:datatype
l,r:integer;
end;
var tr:array[1..n] of node;
(2)链表存储方式,如:
type btree=^node;
node=record
data:datatye;
lchild,rchild:btree;
end;
5.普通树转换成二叉树:凡是兄弟就用线连起来,然后去掉父亲到儿子的连线,只留下父母到其第一个子女的连线。
二叉树很象一株倒悬着的树,从树根到大分枝、小分枝、直到叶子把数据联系起来,这种数据结构就叫做树结构,简称树。树中每个分叉点称为结点,起始结点称为树根,任意两个结点间的连接关系称为树枝,结点下面不再有分枝称为树叶。结点的前趋结点称为该结点的"双亲",结点的后趋结点称为该结点的"子女"或"孩子",同一结点的"子女"之间互称"兄弟"。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!