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

Posted 结点

篇首语:吾生也有涯,而知也无涯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第六章 答案 (五)[4]相关的知识,希望对你有一定的参考价值。

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

  typedef  struct  node  ElemType  data;//数据域  struct  node *fch *nsib;//孩子与兄弟域 *Tree;  int Leaves (Tree t)  //计算以孩子 兄弟表示法存储的森林的叶子数  if(t)  if(t >fch==null)               //若结点无孩子 则该结点必是叶子  return( +Leaves(t >nsib));  //返回叶子结点和其兄弟子树中的叶子结点数  else return (Leaves(t >fch)+Leaves(t >nsib)); //孩子子树和兄弟子树中叶子数之和  //结束Leaves

   .[题目分析]由指示结点i 左儿子和右儿子的两个一维数组L[i]和R[i] 很容易建立指示结点i 的双亲的一维数组T[i] 根据T数组 判断结点U是否是结点V后代的算法 转为判断结点V是否是结点U的祖先的问题

  int Generation (int U V N L[] R[] T[])  //L[]和R[]是含有N个元素且指示二叉树结点i左儿子和右儿子的一维数组   //本算法据此建立结点i的双亲数组T 并判断结点U是否是结点V的后代   for(i= ;i<=N;i++)  T[i]= ;  //T数组初始化  for (i= ;i<=N;i++)          //根据L和R填写T  if(L[i]!= ) T[L[i]]=i;     //若结点i的左子女是L 则结点L的双亲是结点i  for(i= ;i<=N;i++)  if (R[i]!= ) T[R[i]]=i;   //i的右子女是r 则r的双亲是i  int parent=U;               //判断U是否是V的后代  while (parent!=V && parent!= ) parent=T[parent];  if (parent==V)printf( 结点U是结点V的后代 );return( );  else printf( 结点U不是结点V 的后代 );return( );  结束Generation

cha138/Article/program/sjjg/201311/23734

相关参考

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

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

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

  intLevel(BiTreebt)//层次遍历二叉树并统计度为的结点的个数  intnum=;//num统计度为的结点的个数  if(bt)QueueInit(Q);QueueIn(Qbt)//

知识大全 数据结构考研分类复习真题 第六章 答案 (五)[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