树的结构特点:
非线性结构:有一个直接前驱,但有多个直接后继;
树的定义具有递归性:树中还有树;
树可以为空,即结点个数为0;
术语:
根:根节点(没有前驱);
叶子:终端结点(没有后继);
森林:指m棵不能相交的树的集合(例如:删除根节点后的多棵子树树)
有序树:结点各子树从左至右有序,不能互换(左为第一);
无序树:结点各子树可以互换位置;
双亲:即上一层的那个结点(直接前驱)parent
孩子:即下层结点的子树(直接后继)child
兄弟:同一双亲下的同层结点sibling
堂兄弟:即双亲位于同一层的结点cousin
祖先:即从根到该结点所经分支的所有结点
概念:
结点:树的数据元素
结点的度:结点挂接的子树数(有几个直接后继就是几度)
结点的层次:从根到该节点的层数(根节点算第一层)
终端结点:即度为0的节点,即叶子
分支结点:除树根以外的结点(也称内部结点)
树的度:所有度中的最大值
树的深度:指所有结点中最大的层数
左孩子右兄弟表示法是一种转换规则:把一颗非二叉树转换为二叉树
二叉树:
基本特征:
每个节点最多只有两颗子树;
左子树和右子树次序不能颠倒(有序树);
性质:
1、在二叉树的第i层至多有(2的i-1次方)个结点(i > 0);
2、深度为k的二叉树至多有(2的k次方减一)个结点(k > 0);
3、对于任何一颗二叉树,若度为2的结点数有m个,则
叶子数n必定是m+1(即n=m+1)
满二叉树:
一棵深度为k且(2的k次方减一)个节点的二叉树
完全二叉树:
除最后一层,其它层的节点数达到最大值,在最后一层上只缺少右边的
若干结点(坦白说就是有右边必须有左边,有左边可以无右边)
性质:
对于完全二叉树,若从上至下,从左至右编号,则编号为i的结点,
其左孩子的编号为2i,右孩子编号为2i+1,其父节点编号为i/2(i=1为根)
先序遍历:根->左->右
中序遍历:左->根->右
后序遍历:左->右->根
看根的位置,根在前是先序遍历,在中是中序遍历,
然后,一定是左在前右在后
树与二叉树
最新推荐文章于 2022-05-24 12:01:59 发布