分析:从右上角的元素B[i][j]开始与x比较,每次有3种情况:(1)相等,则比较结束;(2)B[i][j]<x,则这一行不包含x,搜索下一行;(3)B[i][j]>x,则这一列不包含x,搜索下一列;这样,每次至少使搜索范围减少一行或一列,最多经过m+n次就可以找到x.
2,将一维数组A[n*n](n<=10)中的元素,按蛇型方式存放在二维数组B[n][n]中,
A[0] A[1] A[5] A[6]。。。
A[2] A[4] A[7] A[13]。。。
A[3] A[8] A[12]。。。
B = A[9] A[11]。。。
A[10]。。。
分析:从B的左上角开始对平行于副对角线的2n-1条对角线的元素交替进行赋值。
3.判断二叉树T是否是完全二叉树,T采用二叉链表作为存储结构。
分析:利用层次遍历思想,设置一个标志flag,初值为0,按层次遍历时,若某个结点的左子树或右子树为空,则置flag为1,若此后遍历的结点的左子树和右子树都为空,则是完全二叉树,否则不是。
4,二叉树T采用二叉链表作为存储结构,从右向左依次释放所有叶子结点,并且把结点值放到一个数组中。
分析:采用后序遍历的变形方式,先判断二叉树的根结点,再遍历右子树,最后遍历左子树。
5.求任一指定结点所在的层次,二叉树T采用二叉链表作为存储结构.