知识大全 数据结构考研分类复习真题 第六章 答案 (五)[19]

Posted 结点

篇首语:古人学问无遗力,少壮工夫老始成。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第六章 答案 (五)[19]相关的知识,希望对你有一定的参考价值。

   int Level(BiTree bt) //层次遍历二叉树 并统计度为 的结点的个数  int num= ; //num统计度为 的结点的个数  if(bt)QueueInit(Q); QueueIn(Q bt) //Q是以二叉树结点指针为元素的队列  while(!QueueEmpty(Q))  p=QueueOut(Q); printf(p >data);     //出队 访问结点  if(p >lchild && !p >rchild ||!p >lchild && p >rchild)num++;//度为 的结点  if(p >lchild) QueueIn(Q p >lchild); //非空左子女入队  if(p >rchild) QueueIn(Q p >rchild); //非空右子女入队    //if(bt)  return(num); //返回度为 的结点的个数

   void exchange(BiTree bt)//将二叉树bt所有结点的左右子树交换  if(bt)BiTree s   s=bt >lchild; bt >lchild=bt >rchild; bt >rchild=s; //左右子女交换  exchange(bt >lchild);  //交换左子树上所有结点的左右子树  exchange(bt >rchild);  //交换右子树上所有结点的左右子树  

  [算法讨论]将上述算法中两个递归调用语句放在前面 将交换语句放在最后 则是以后序遍历方式交换所有结点的左右子树 中序遍历不适合本题 下面是本题( )要求的非递归算法

  ( )void exchange(BiTree  t)   //交换二叉树中各结点的左右孩子的非递归算法  int top= ; BiTree s[] p;   //s是二叉树的结点指针的栈 容量足够大  if(bt)  s[++top]=t;  while(top> )  t=s[top ];  if(t >lchild||t >rchild)p=t >lchild;t >lchild=t >rchild;t >rchild=p;//交换左右  if(t >lchild) s[++top]=t >lchild; //左子女入栈  if(t >rchild) s[++top]=t >rchild; //右子女入栈  //while(top> )  //if(bt)   // 结束exchange

cha138/Article/program/sjjg/201311/23719

相关参考

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[23]

  PROCprint(bt:BiTreexy:integer)  //将二叉树逆时针旋转度打印xy是根结点基准坐标调用时xy=  IFbt<>NILTHEN[print(bt↑rchil

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[47]

  .BiThrTreeInSucc(BiThrTreeTp) //在对称序穿线树T中查找给定结点p的中序后继  if(p>rtag==)q=p>rchild; &nb

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[33]

  intBTLC(BiTreeTint*c)//对二叉树T的结点计数  if(T)  *c++;  BTLC(T>lchild&c);//统计左子树结点  BTLC(T>rchi

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[45]

  voidInOrderThreat(BiThrTreethrt)  //thrt是指向中序全线索化头结点的指针本算法中序遍历该二叉树  p=thrt>lchild; //p指向二叉

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[34]

  .intCount(BiTree bt)//非递归遍历求二叉树上的叶子结点个数  intnum=;  BiTrees[];//s是栈栈中元素是二叉树结点指针栈容量足够大  whlie(b

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[25]

  [题目分析]知二叉树中序序列与后序序列第题以递归算法建立了二叉树本题是非递归算法  voidInPostCreat(ElemTypeIN[]POST[]intlhlh)  //由二叉树的中序序列I

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[15]

  [题目分析]先序遍历二叉树的非递归算法要求进栈元素少意味着空指针不进栈  voidPreOrder(Bitree bt)//对二叉数bt进行非递归遍历  inttop=;Bitrees[

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[6]

  .BiTreeCreat(ElemTypeA[]inti)  //n个结点的完全二叉树存于一维数组A中本算法据此建立以二叉链表表示的完全二叉树  BiTreetree;  if(i<=n)t

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[4]

  .[题目分析]当森林(树)以孩子兄弟表示法存储时若结点没有孩子(fch=null)则它必是叶子总的叶子结点个数是孩子子树(fch)上的叶子数和兄弟(nsib)子树上叶结点个数之和  typedef