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

Posted 结点

篇首语:逆水行舟用力撑,一篙松劲退千寻。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第六章 答案 (五)[21]相关的知识,希望对你有一定的参考价值。

   TYPE bitreptr=^binode;  binode=RECORD data:ElemType; lchild rchlid:bitreptr END;  PROC PreOrder(bt:bitreptr);  //非递归前序遍列二叉树  VAR S:ARRAY[ max] OF bitreptr;    //max是栈容量 足够大  inits(S);//栈初始化  WHILE (bt<>NIL) OR (NOT empty(S)) DO  [WHILE (bt<>NIL )DO  [write(bt↑data); push(S bt >rchild); bt:=bt↑ lchild;]//访问结点 右子女进栈  WHILE (NOT empty(S) AND top(S)=NIL) bt:=pop(S);// 退栈  IF NOT empty(S) THEN bt:=pop(S);  ] ENDP;

  [算法讨论]若不要求使用top(S) 以上算法还可简化

   [题目分析]二叉树采取顺序结构存储 是按完全二叉树格式存储的 对非完全二叉树要补上 虚结点 由于不是完全二叉树 在顺序结构存储中对叶子结点的判定是根据其左右子女为 叶子和双亲结点下标间的关系满足完全二叉树的性质

  int Leaves(int h)  //求深度为h以顺序结构存储的二叉树的叶子结点数  int BT[]; int len= h count= ; //BT是二叉树结点值一维数组 容量为 h  for (i= ;i<=len;i++) //数组元素从下标 开始存放  if (BT[i]!= )      //假定二叉树结点值是整数 虚结点 用 填充  if(i* )>len) count++;                        //第i个结点没子女 肯定是叶子  else if(BT[ *i]== && *i+ <=len && BT[ *i+ ]== ) count++; //无左右子女的结点是叶子  return (count)   //结束Leaves

cha138/Article/program/sjjg/201311/23721

相关参考

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