2012江西省数据要领入门.pdfVIP

  • 2
  • 0
  • 约9.82千字
  • 约 8页
  • 2019-10-25 发布于湖北
  • 举报
1、对一般二叉树,仅根据一个先序、中序、后序遍历,不能确定另一个遍历序列。但对于满 二叉树,任一结点的左右子树均含有数量相等的结点,根据此性质,可将任一遍历序列转为 另一遍历序列(即任一遍历序列均可确定一棵二叉树)。 void PreToPost(ElemType pre[] ,post[],int l1,h1,l2,h2) //将满二叉树的先序序列转为后序序列,l1,h1,l2,h2 是序列初始和最后结点的下标。 {if(h1=l1) {post[h2]=pre[l1]; //根结点 half=(h1-l1)/2; //左或右子树的结点数 PreToPost(pre,post,l1+1,l1+half,l2,l2+half-1) //将左子树先序序列转为后序序列 PreToPost(pre,post,l1+half+1,h1,l2+half,h2-1) //将右子树先序序列转为后序序列 } }//PreToPost 32. .叶子结点只有在遍历中才能知道,这里使用中序递归遍历。设置前驱结点指针pre,初 始为空。第一个叶子结点由指针head 指向,遍历到叶子结点时,就将它前驱的rchild 指针 指向它,最后叶子结点的rchild 为空。 LinkedList head,pre=null; //全局变量 LinkedList

文档评论(0)

1亿VIP精品文档

相关文档