摘要: 二叉树首先是一棵树,每个节点都不能有多于两个的儿子,也就是树的度不能超过2。二叉树的两个儿子分别称为“左儿子”和“右儿子”,次序不能颠倒。如图1是一个简单的二叉树。二叉树的种类一种是满二叉树,除了最后一层的叶子节点外,每一层的节点都必须有两个儿子节点。如图2是一个满二叉树。另一种是完全二叉树,一棵二叉树去掉最后一层后剩下的节点组成的树为满二叉树,最后一层的节点从左到右连续,即所有的结点都连续集中在最左边。这样的树称为完全二叉树。如图3是一棵完全二叉树。满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树二叉树的实现因为一棵树有最多只有两个儿子,所以我们可以用指针直接指向他们。一个节点包括值(d 阅读全文
posted @ 2013-04-06 12:16 only_eVonne 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 无论是链表,栈还是队列,它们都是线性结构的,每个节点的左边最多一个节点,右边也最多一个节点,对于大量的输入数据,线性表的访问时间太慢,不宜使用。这里我要说一种非线性的数据结构,其大部分操作的运行时间平均为O(logn)。我们涉及到的这种数据结构叫做树。在计算机科学中,树是非常有用的抽象概念。我们形象的去描述一棵树,一个家族的老祖可能有两个儿子,这两个儿子一个有一个儿子,一个有三个儿子,像这样发展下去的一个族谱,就是一个树,如图1所示。就像一棵真正的树一样,我们把老祖称为树根,两个字儿是分叉开的两个树枝,这两棵树枝可以继续向下分成N个树枝,循环下去,一直到长出叶子为止。我们把老祖或者树根称为根( 阅读全文
posted @ 2013-04-06 12:08 only_eVonne 阅读(758) 评论(0) 推荐(0) 编辑