熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構考研分類復習真題 第六章 答案 (五)[10]

2013-11-15 15:38:40  來源: 數據結構 

  .[題目分析] 求二叉樹高度的算法見上題求最大寬度可采用層次遍歷的方法記下各層結點數每層遍歷完畢若結點數大於原先最大寬度則修改最大寬度

  int Width(BiTree bt)//求二叉樹bt的最大寬度
  {if (bt==null) return ();  //空二叉樹寬度為
  else
  {BiTree Q[];//Q是隊列元素為二叉樹結點指針容量足夠大
  front=;rear=;last=;//front隊頭指針rear隊尾指針last同層最右結點在隊列中的位置
  temp=; maxw=;       //temp記局部寬度 maxw記最大寬度
  Q[rear]=bt;           //根結點入隊列
  while(front<=last)
  {p=Q[front++]; temp++; //同層元素數加
  if (p>lchild!=null)  Q[++rear]=p>lchild;   //左子女入隊
  if (p>rchild!=null)  Q[++rear]=p>rchild;   //右子女入隊
  if (front>last)      //一層結束
  {last=rear;
  if(temp>maxw) maxw=temp;//last指向下層最右元素 更新當前最大寬度
  temp=;
  }//if
  }//while
  return (maxw);
  }//結束width

[]  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/sjjg/201311/23726.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.