树的知识点总结
扫描二维码
随时随地手机看文章
树的分类:
一般树:任意一个节点的个数都不受限制;
二叉树:任意一个子结点的个数和叶子节点的个数最多两个,且节点和子节点位置不可更改;
森林:n个互不相交的树的集合;
二叉树分类:
一般二叉树:
满二叉树:在不增加层数的前提下,无法再增加一个节点的前提的二叉树;
完全二叉树:如果只删除了满二叉树最底层右边连续若干个节点,这样形成的二叉树就是完全二叉树;
一般树的储存:
双亲表示法:
孩子表示法:
双亲孩子表示法:
二叉树表示法:
一般树的都可以转换成二叉树再进行储存,转换方法:选择原来树的根节点作为二叉树的根节点,转换的二叉树中任意一个节点的左指针域指向它的从左至右的第一个孩子,右指针域指向它的兄弟;
二叉树储存
连续存储(数组):
一般二叉树要用连续存储的方式进行储存,必须将一般二叉树转化为完全二叉树,原因:一般二叉树是非线性的,而电脑的的内存是线性的,所以要将非线性转换位线性在电脑中进行储存。如果只再数组中储存有效结点,那么无法将线性转换为非线性(就无法知道二叉树的实际结构)。
链式存储:
一个数据两个指针域
二叉树的遍历
先序遍历:
先遍历根结点再先序遍历左子树,再先序遍历右子树;
中序便利:
先中序遍历左字数,再遍历根结点,再中序遍历右子树;
后序遍历:
先后序遍历左子树,再后序遍历右子树,再遍历根几点;
已知来两种序列求原始二叉树
已知先和中可以知道原始二叉树;
已知中和后可以知道原始 二叉树;
还有结点,叶子结点,树的深度,结点的读以及树的度等概念;