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

Posted 序列

篇首语:当筵意气临九霄,星离雨散不终朝。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第六章 答案 (五)[25]相关的知识,希望对你有一定的参考价值。

   [题目分析]知二叉树中序序列与后序序列 第 题以递归算法建立了二叉树 本题是非递归算法

  void InPostCreat(ElemType IN[] POST[] int l h l h )  //由二叉树的中序序列IN[]和后序序列POST[]建立二叉树 l h 和l h 分别是中序序列和  //后序序列第一和最后元素的下标 初始调用时 l =l = h =h =n   typedef struct int l h l h ; BiTree t; node;  node s[] p;//s为栈 容量足够大  BiTree bt=(BiTree)malloc(sizeof(BiNode)); int top= i;  p l =l ; p h =h ; p l =l ; p h =h ; p t=bt; s[++top]=p;//初始化  while(top> )  p=s[top ]; bt=p t; l =p l ; h =p h ; l =p l ; h =p h ;//取出栈顶数据  for(i=l ;i<=h ;i++) if(IN[i]==POST[h ]) break;//在中序序列中查等于POST[h ]的结点  bt >data=POST[h ];     //根结点的值  if(i==l ) bt >lchild=null;    //bt无左子树  else   //将建立左子树的数据入栈  bt >lchild=(BiTree)malloc(sizeof(BiNode)); p t=bt >lchild;  p l =l ; p h =i ; p l =l ; p h =l +i l ; s[++top]=p;   if(i==h ) bt >rchild=null;    //bt无右子树  else bt >rchild=(BiTree)malloc(sizeof(BiNode)); p t=bt >rchild;  p l =i+ ; p h =h ; p l =l +i l ; p h =h ; s[++top]=p;  //右子树数据入栈  // while(top> )  结束InPostCreat   .BiTree  Copy(BiTree  t)//复制二叉树t  BiTree bt;  if (t==null) bt=null;  elsebt=(BiTree)malloc(sizeof(BiNode)); bt >data=t >data;  bt >lchild=Copy(t >lchild);  bt >rchild=Copy(t >rchild);    return(bt); //结束Copy

cha138/Article/program/sjjg/201311/23703

相关参考

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

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

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

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

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

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

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