14分析2

来源:互联网 发布:fenrir软件 编辑:程序博客网 时间:2024/05/18 00:27
3.出队的操作是先从 A[end1]读数,然后 end1 再加 1。入队操作是先存数到 A[end2],然后 end2 再加1。
若把 A[0]储存第一个元素,当队列初始时,入队操作是先把数据放到 A[0],然后 end2自增,即可知 end2 初值为 0;
而 end1 指向的是队头元素,队头元素的在数组 A 中的下标为0,所以得知 end1 初值也为 0,可知队空条件为 end1==end2;
考虑队列满时,因为队列 最多能容纳 M-1 个元素,假设队列存储在下标为 0 到下标为 M-2 的 M-1 个区域,队头为 A[0],队尾为 A[M-2],此时队列满
考虑在这种情况下 end1 和 end2 的状态,end1 指向队 头元素,可知 end1=0,end2 指向队尾元素的后一个位置,可知 end2=M-2+1=M-1,所以可 知队满的条件为 end1==(end2+1)mod M
考虑这类具体问题时,用一些特殊情况判断往往比直接思考问题能更快的得到答 案,并可以画出简单的草图以方便解题。


4.线索二叉树的线索实际上指向的是相应遍历序列特定结点的前驱结点和后继结点, 所以先写出二叉树的中序遍历序列:edbxac,中序遍历中在 x 左边和右边的字符,就是它在 中序线索化的左、右线索,即 b、a,


5.将森林转化为二叉树即相当于用孩子兄弟表示法表示森林。在变化过程中,原森林某树结点的第一个孩子结点作为它的左子树,它的兄弟作为它的右子树。那么森林中的叶结点 由于没有孩子结点,那么转化为二叉树时,该结点就没有左结点,所以 F 中叶结点的个数就等于 T 中左孩子指针为空的结点个数


0 0
原创粉丝点击