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

Posted 结点

篇首语:登山则情满于山,观海则意溢于海。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第六章 答案 (五)[13]相关的知识,希望对你有一定的参考价值。

   [题目分析]二叉树顺序存储 是按完全二叉树的格式存储 利用完全二叉树双亲结点与子女结点编号间的关系 求下标为i和j的两结点的双亲 双亲的双亲 等等 直至找到最近的公共祖先

  void Ancestor(ElemType A[] int n i j)  //二叉树顺序存储在数组A[ n]中 本算法求下标分别为i和j的结点的最近公共祖先结点的值   while(i!=j)  if(i>j) i=i/ ;      //下标为i的结点的双亲结点的下标  else j=j/ ;         //下标为j的结点的双亲结点的下标  printf( 所查结点的最近公共祖先的下标是%d 值是%d i A[i]);//设元素类型整型   // Ancestor

   [题目分析]用二叉树表示出父子 夫妻和兄弟三种关系 可以用根结点表示父(祖先) 根结点的左子女表示妻 妻的右子女表示子 这种二叉树可以看成类似树的孩子兄弟链表表示法 根结点是父 根无右子女 左子女表示妻 妻的右子女(右子女的右子女等)均可看成兄弟(即父的所有儿子) 兄弟结点又成为新的父 其左子女是兄弟(父的儿子)妻 妻的右子女(右子女的右子女等)又为儿子的儿子等等 首先递归查找某父亲结点 若查找成功 则其左子女是妻 妻的右子女及右子女的右子女等均为父亲的儿子

  BiTree Search(BiTree t ElemType father)//在二叉树上查找值为father的结点  if(t==null) return (null);            //二叉树上无father结点  else if(t >data==father) return(t);   //查找成功  p=Search(t >lchild father); p=Search(t >rchild father);   //结束Search  void PrintSons(BiTree t ElemType p)  //在二叉树上查找结点值为p的所有的儿子  p=Serach(t p);                     //在二叉树t上查找父结点p  if(p!=null)                        //存在父结点  q=p >lchild; q=q >rchild;       //先指向其妻结点 再找到第一个儿子  while(q!=null) printf(q >data); q=q >rchild; //输出父的所有儿子    //结束PrintSons

cha138/Article/program/sjjg/201311/23729

相关参考

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

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

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