1、一颗完全二叉树上与1001个结点,其中叶子结点的个数是()
解法一: 512<1001<1024 因此该完全二叉树有10层,第10层的叶子节点数=1001-511=490 第9层上非叶子节点数=490/2=245个,第9层总结点数=256, 因此第9层上叶子结点数=256-245=11个,该数总叶子结点个数为501个
解法二:完全二叉树的最后一个结点的编号一定是1001,则它的父结点的编号为1001/2=500,则叶子结点个数为1001-500=501.
总结一下:完全二叉树的最后一个结点的编号是n,则它的父结点的编号为[n/2],则叶子结点个数为n-[n/2]。
2、一颗非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足()
A、所有的结点均无左孩子
B、所有的结点均无右孩子
C、只有一个叶子结点
D、是任意一颗二叉树
答案:C
解法:先序遍历是“中左右”,后序遍历为“左右中” ,没有左子树时,就变成了“中右“和“”右中”,没有右子树时,就变成了"中左"和"左中",所以没有左孩子或者没有右孩子都可以。
3、若从无向图的任意一个顶点出发进行一次深度优先搜索可以访问图中所有的顶点,则该图一定是()
A、非连通
B、连通
C、强连通
D、有向
答案:连通图
连通图:在无向图中,对于任意两个顶点都是连通的
连通分量:无向图中的极大连通子图
强连通图:在有向图中,对于每一对vi,vj都存在vi到vj和vj到vi的路径
强连通分量:有向图中的极大强连通子图
4、Prim算法适合构建稠密图的最小生成树,算法时间复杂度与网中的边数无关
Kurskal适合求稀疏网的最小生成树