存二叉树结点的数组怎么定义
关于二叉树的其他概念:一、斜树:就是斜着长的树,比如上图中只留下ABD或者ACG的话就是斜树了。二、满二叉树:如果所有的节点都存在左子树和又子树,并且所有的叶的深度都相同,那么这个树被称为满二叉树。 三、完全二叉树:我们对二叉树进行编号,比如上图,编为A(1)B(2)C(3)D(4)E(5)F(6)G(7),可以发现,这棵树一共有7个节点(记为n),但是我们如果删除G,那么是6个节点,对于新的这棵树进行遍历,和当它满的时候各点的编号一样,则它是完全二叉树。 但是如果拿掉的是F,那么就不是完全二叉树。满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。二叉树的性质:为什么说二叉树特殊呢...全部
关于二叉树的其他概念:一、斜树:就是斜着长的树,比如上图中只留下ABD或者ACG的话就是斜树了。二、满二叉树:如果所有的节点都存在左子树和又子树,并且所有的叶的深度都相同,那么这个树被称为满二叉树。
三、完全二叉树:我们对二叉树进行编号,比如上图,编为A(1)B(2)C(3)D(4)E(5)F(6)G(7),可以发现,这棵树一共有7个节点(记为n),但是我们如果删除G,那么是6个节点,对于新的这棵树进行遍历,和当它满的时候各点的编号一样,则它是完全二叉树。
但是如果拿掉的是F,那么就不是完全二叉树。满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。二叉树的性质:为什么说二叉树特殊呢?因为它有如下的性质:一、在二叉树的第i层至多有2i-1个节点。
二、深度为k的二叉树最多有2k-1个节点。(注意与第一点的区别,一个是指数为i-1,一个指数为k但整体-1)三、具有n个节点的完全二叉树的深度为[(log2n)] 1。[]表示取整。四、对于任意一个编号为n的节点,如果它有子节点,它的左子节点编号为2n,右节点的编号为2n 1。
(这条性质很重要,决定了二叉树可以用数组来表示)。二叉树的遍历:二叉树主要有三种遍历方法。1、先序遍历:优先遍历根,然后优先遍历左节点。图中的二叉树先序遍历后的结果为ABDECFG2、后序遍历:优先访问最底层的左节点,图中的二叉树后序遍历后的结果为DEBFGCA3、中序遍历:先访问最下层的叶,并且由左子树到父节点到右子树的顺序遍历,图中二叉树中序遍历后的结果为DBEFCGA二叉树的顺序存储方法:对于图中的树,它的编号是这样的:A(1)B(2)C(3)D(4)E(5)F(6)G(7),利用性质四,就可以很轻松的建立一棵顺序二叉树。
我们可以把数组中的第一个位置舍弃,因为不方便。我们来看一下如何进行先序输入吧:。收起