数据结构习题课4.pptVIP

  • 132
  • 0
  • 约 36页
  • 2016-12-01 发布于贵州
  • 举报
数据结构习题课4

分析 完全二叉树的叶子结点只能在层数最大两层出现,并且连续出现 在层次遍历二叉树时,增加一个标志B,B=1表示所有已扫描过的结点均有左、右孩子,B=0,表示遇到无左或右孩子的结点,此后的所有结点均应为叶结点。 层次遍历时,空指针可以入队。出队遇到第一个空指针时,此后队列里的都是空指针。 对所有结点按完全二叉树编号,记录编号的最大值和结点数n。相等,则是完全二叉树。 设有一个指针数组,下标代表编号,数组元素代表结点。出现空缺编号或编号大于n,则不是完全二叉树。 建立编号函数,递归记录结点数和编号最大值 4-6 编写算法求任意二叉树中一条最长的路径,并输出此路径上各结点的值。 分析 教材中,树上的路径定义:若树T中存在结点序列Vm -- Vm+1 --…-- Vm+k ,1= k =T的最大层数, Vi+1 是 Vi 的子结点。 相当于求根结点开始的最长路径。可以根据左右子树的高度确定下一步的结点。 参考答案 int height(BinTreeNodeT* t) { if(t==NULL) return -1; return 1+max(height(t-left),height(t-right)); } void path(BinTreeNodeT* t) { while(t){ coutt-dataendl; if(height(t-left)height(t-

文档评论(0)

1亿VIP精品文档

相关文档