树和二叉树

树是一种非线性结构栈和队列都是线性结构(线性一般是指每一个元素都通常只有一个前驱和一个后继)(我到时候会发一个栈和队列知识点

一、树的定义

一棵树是由n(n>0)个元素组成的有限集合,其中:

(1)每个元素称为结点(node)

(2)有一个特定的结点,称为根结点或树根(root)

(3)除根结点外,其余结点能分成m(m>=0)个互不相交的有限集合T0,T1,T2…… Tm-1。其中的每个子集又都是一棵树,这些集合称为这颗树的子树

三、树的基本概念

(1)树都是递归定义的。

(2)一棵树中至少有1个结点。这个结点就是根结点

(3)一个结点的子树个数,称为这个结的度(degree)

例如,结点1的度为3,结点3的度为0;​度为0的结点称为叶结点​**。**

(4)在用图形表示的树型结构中,对两个用线段连接的相关联的结点,称上端点为下端点的父结点,称下端结点为上端结点为子结点。同一个父结点的多个子结点称为兄弟结点

(5)定义一棵树的根结点的层次为1,其他节点的层次等于它的父结点层次加1

(6)对于树中任意两个不同的结点,如果从一个结点出发,自上而下沿着树中连着结点的线段能到达另一结点,称它们之间存在着一条路径

(7)森林m(m>=0)棵互不相交的树的集合

你可能感兴趣的:(数据结构,算法)