2014山东省数据库期末考试高级.docVIP

  • 1
  • 0
  • 约6.44千字
  • 约 5页
  • 2020-04-01 发布于河北
  • 举报
1、对二叉树的某层上的结点进行运算,采用队列结构按层次遍历最适宜。 int LeafKlevel(BiTree bt, int k) //求二叉树bt 的第k(k1) 层上叶子结点个数 {if(bt==null || k1) return(0); BiTree p=bt,Q[]; //Q是队列,元素是二叉树结点指针,容量足够大 int front=0,rear=1,leaf=0; //front 和rear是队头和队尾指针, leaf是叶子结点数 int last=1,level=1; Q[1]=p; //last是二叉树同层最右结点的指针,level 是二叉树的层数 while(front=rear) {p=Q[++front]; if(level==k !p-lchild !p-rchild) leaf++; //叶子结点 if(p-lchild) Q[++rear]=p-lchild; //左子女入队 if(p-rchild) Q[++rear]=p-rchild; //右子女入队 if(front==last) {level++; //二叉树同层最右结点已处理,层数增1 last=rear; } //last移到指向下层

文档评论(0)

1亿VIP精品文档

相关文档