数据结构-栈、队列、链表、二叉树
栈:先进后出,后进先出。也可以边存边取。
队列:
链表:
二叉数:
二叉数的几种分类:
节点的度:节点的子树的个数。
叶节点:度为0的节点
树的度:指树存在的所有节点中节点度的最大的度数
斜二叉数:完全往一边倒的链式结构
完美二叉数:除了最底层的节点以外,每个节点应该有两个子节点。
完全二叉数:如果节点的编号是自上而下,自左而右排列的话,只要某个二叉数节点的编号和完美二叉数的节点的编号完全对的上,就可以称这个二叉数为节点二叉数。
与完美二叉数的区别为,完全二叉数最后一层的节点可以是不完全的,缺少的节点应该是从右往左缺,使得留下来的节点编号依然和完美二叉数能一一对应。
二叉树的几个重要的性质:
1. 一个二叉树第i层的最大节点数为 2的(i-1)次方
2. 深度为k的二叉树有最大节点总数为 2的k方-1 等比数列求和
3. 若n0 表示叶节点的个数 则 n0=n2+1 证明: 从树下往上看 每个节点节点都有一个小条路,根节点没有(介于两个节点之间的线称为路)总数为n0+n1+n2-1, 从树上往下看,总数 为2n2 + 1 n1 +0 n0 ,两式相等,化简所得。
二叉树的遍历
1. 先序遍历:根,左,右
2. 中序遍历:左,根,右
2.后序遍历:右,根,左
中序遍历非递归遍历算法:
1. 遇到一个节点,将它押送进栈,接着遍历它的左子树。
2. 重复1 直到左子树不存在,弹出栈顶的节点,并按照1 的方法访问它的右子树。
层序遍历:
利用队列的思想,依次访问高层次,再访问次层次。队的特性是2端修改,一端加,一段减。
1. 访问根节点,将左右子节点进队。
2.队最左边出,将此出队的节点的左右子节点入队。
重复1.2
浙公网安备 33010602011771号