1. 给定整型数组B[m][n],B中数据在每一维方向都按从小到大的次序排列,而且整型变量xB中存在,找出一对满足B[i][j]==xij,要求比较次数不超过m+n

分析:从右上角的元素B[i][j]开始与x比较,每次有3种情况:(1)相等,则比较结束;(2B[i][j]<x,则这一行不包含x,搜索下一行;(3B[i][j]>x,则这一列不包含x,搜索下一列;这样,每次至少使搜索范围减少一行或一列,最多经过m+n次就可以找到x.

 

数据结构复习笔记(3)void SearchIndex(int B[M][N],int x,int &i,int &j)

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)#define N 10
数据结构复习笔记(3)
void SnakeSet(int A[],int B[][N])

3.判断二叉树T是否是完全二叉树,T采用二叉链表作为存储结构。

 

分析:利用层次遍历思想,设置一个标志flag,初值为0,按层次遍历时,若某个结点的左子树或右子树为空,则置flag1,若此后遍历的结点的左子树和右子树都为空,则是完全二叉树,否则不是。

数据结构复习笔记(3)#define MAXSIZE 100
数据结构复习笔记(3)
数据结构复习笔记(3)
bool BTLink_jurdge(BTNode * T)

4二叉树T采用二叉链表作为存储结构,从右向左依次释放所有叶子结点,并且把结点值放到一个数组中。

分析:采用后序遍历的变形方式,先判断二叉树的根结点,再遍历右子树,最后遍历左子树。

数据结构复习笔记(3)void BTLink_DeleteLeaf(BiTree &T,ElemType sava[])

5.求任一指定结点所在的层次,二叉树T采用二叉链表作为存储结构.

数据结构复习笔记(3)#define MAX 100
数据结构复习笔记(3)
数据结构复习笔记(3)
int BTLink_LevelNum(BTNode* T,ElemType x)

相关文章:

  • 2022-03-07
  • 2021-12-05
  • 2022-12-23
  • 2022-01-10
  • 2022-12-23
  • 2021-04-08
  • 2021-06-24
  • 2021-08-07
猜你喜欢
  • 2021-11-18
  • 2021-11-08
  • 2022-02-17
  • 2021-11-25
  • 2021-06-27
  • 2022-01-10
相关资源
相似解决方案