算法——————笔试内容--->树(二)

来源:互联网 发布:php中echo是什么意思 编辑:程序博客网 时间:2024/06/14 22:51

题目一:前序遍历二叉树值为abcdefg,下面哪个不可能是中序遍历:

A.abcdefg B.gfedcbaC.bcdefgaD.bceadfg


解析:树的遍历分为三种:前序(根左右),中序(左根右),后序(左右根),由此可知a必为根,对于A选项的情况是该树a处没有左子树,bcdefg都在a处的右子树中,A选项可以以一种链表的形式排列;对于B选项跟A选项刚好相反,a根节点没有右子树,只有左子树,排列方式也是可以以单链表的排列的方式;对于C选项,跟B选项一样a节点处没有右子树,只有左子树,可以以链表的形式排列;所以只有D不正确,因为从D选项上看bce在a的左子树中,dfg在a的右子树中,但从题目中可以看出搜索出来的顺序d在e之前,说明d要么和e相连,d在a的左侧部分e在a的右侧部分,但是D选项都不属于命题中的情况所以D错。


题目二:有一个二叉搜索树用来存储字符A,B,C,D,E,F,G,H下面哪个结果是后序遍历结果

A. ADBCEGFHB.BCAGEHFDC.BCAEFDHGD. BDACEFHG


解析:何为二叉搜索树?算法导论中的定义为:设x是二叉搜索树中的一个节点。如果y是x左子树中的一个节点,那么y.key <= x.key 。如果y是x右子树中的一个节点,那么 y.key>=x.key。下面来看一下题目,字符ABCDEFGH,ascii码中这些字符值依次递增。可以认为这些字符一一对应于整数的 1 2 3 4 5 6 7 8 ,而后序遍历顺序为:左右根,因此最后一个字符应该是根节点;根据反序遍历来看每次操作的顺序都是左右根,对于子树也是如此;

A选项,该树结构H根无右子树只有左子树,H根-->子根F->子根E->子根C剩下ADB无法确定

B选项,该树结构,左子树结构D根-->A-->右侧C--->左侧B,右子树结构D根--->右侧F--->H 左侧F无法安放GE两个元素

C选项


D选项  左侧G->F左->E左->C->BDA无法区分左右故不行


题目三:下面的那个数据序列不能组成平衡二叉树?

A. 8,-1,6,7,4,3,-2

B.20,10,16,4,30,24,31

C.7,12,3,-2,8,19,5,10

D.10,5,20,6,2,1,22,15,30


解析:对于上述的选项来讲,首先要排列成搜索二叉树,然后再排列成平衡二叉树,那么什么是平衡二叉树?平衡二叉树具有以下性质:它是一颗空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树。

对于A选项来讲,第一个数据为8,而且后续的数据都小于8那么,以8为根的树只有左子树,且左子树高度肯定超过1,那么形成的树肯定不能是平衡二叉树。

对于BCD选项以图为例:

B选项


C选项


D选项


题目四:如下数据结构:

typedef struct  TreeNode{

char c;

TreeNode *left;

TreeNode *right;

} TreeNode;

请实现两棵树是否相等的比较,相等返回0不相等返回其他值。

请注意最后一个return 中的最外面括号的作用:保证各个情况都遍历完!!!!

int CompareTree(TreeNode *A,TreeNode *B){int isTreeAnull = (A==NULL);int isTreeBnull = (B==NULL);if(isTreeAnull != isTreeBnull){return 1;}if(isTreeAnull && isTreeBnull){return 0;}if(A->c != B->c){return 1;}return (CompareTree(A->left,B->left) & CompareTree(A->left,B->rigth)| CompareTree(A->left,B->rigth) & CompareTree(A->rigth,B->left));}

题目五:假设一棵二叉树中的节点在1到1000之间,现在想要查找数值为363的节点。下面序列中哪个不是查找过的序列?

a.2,252,401,398,330,344,397,363.

b.924,220,911,244,898,258,362,363.

c.925,202,911,240,912,245,363.

d.2,399,387,219,266,382,381,278,363.

e.935,278,347,621,299,392,358,363.

接卸:

对于a选项

 

对于b选项


对于c选项


对于d选项


对于e选项

0 0