如果单向线性链式物理结构中每个节点有可能找到多个其他节点则它就变成树
树里的所有节点可以分成几层,不同层之间符合线性规律(任意两层之间有前后顺序)
树的最上面一层只有一个节点,这个节点叫做根节点
根节点可以代表整棵树
树里不同节点之间的直接关系叫做父子关系,其中靠近根节点的叫父节点,另外一个节点叫子节点
树里任何节点最多只能有一个父节点(根节点没有父节点)如果树里任何节点最多只能有两个子节点这种树叫二叉树
二叉树是最简单的树
我们用左右区分二叉树里某个节点的两个子节点,树里任何节点都可以当作根节点看待,它可以代表它下面所有节点构成的树
二叉树里任何节点都可以当作一个新的二叉树看待,一个节点的左子节点作为根节点构成树叫做这个节点的左子树
任何一棵树可以分成三部分看待:根节点,根节点的左子树,根节点的右子树
所有树都可以转换成二叉树
依次处理树中每个节点的操作叫树的遍历
树的绝大多数操作都是通过遍历实现的
树的遍历通常采用递归方式实现
遍历树的时候永远先遍历左子树然后遍历右子树
根据根节点处理时机的不同把遍历分成三种:
最开始处理根节点的遍历叫前序遍历,
树里的所有节点可以分成几层,不同层之间符合线性规律(任意两层之间有前后顺序)
树的最上面一层只有一个节点,这个节点叫做根节点
根节点可以代表整棵树
树里不同节点之间的直接关系叫做父子关系,其中靠近根节点的叫父节点,另外一个节点叫子节点
树里任何节点最多只能有一个父节点(根节点没有父节点)如果树里任何节点最多只能有两个子节点这种树叫二叉树
二叉树是最简单的树
我们用左右区分二叉树里某个节点的两个子节点,树里任何节点都可以当作根节点看待,它可以代表它下面所有节点构成的树
二叉树里任何节点都可以当作一个新的二叉树看待,一个节点的左子节点作为根节点构成树叫做这个节点的左子树
任何一棵树可以分成三部分看待:根节点,根节点的左子树,根节点的右子树
所有树都可以转换成二叉树
依次处理树中每个节点的操作叫树的遍历
树的绝大多数操作都是通过遍历实现的
树的遍历通常采用递归方式实现
遍历树的时候永远先遍历左子树然后遍历右子树
根据根节点处理时机的不同把遍历分成三种:
最开始处理根节点的遍历叫前序遍历,
最后处理根节点的遍历叫后序遍历,
中间处理根节点的遍历叫中序遍历
算法是解决