(zhn)现在的位置Q?/strong> 跨考网频道考研报名正文

数据l构W六章算法设计题[13]_跨考网

最后更新时_(d)(x)2011-11-25 11:45:16
辅导评Q?a target="_blank" rel="nofollow">暑期集训 在线咨询
复习(fn)紧张Q焦头烂额?逆风轻袭Q来跨考秋季集训营Q帮你寻Ҏ(gu)Q定Ҏ(gu)Q?/span> 了解一?>

         1Q对于二叉树(wi)的链接实?/span>,完成非递归的中序遍历过E?/span> ?a target="_blank">中山大学 1999 五?/span> (15?/span>)?/span>

  cM本题的另外叙q有Q?/span>

  Q?/span>1Q写Z序遍历二叉树(wi)的非递归法?qing)递推法。?a target="_blank">大连事大学1996 六?/span>2 Q?/span>10?/span>)】?/span>

  Q?/span>2Q设计一个中序遍历算法,应用栈来存储?wi)结点,要求l点仅能q栈和出栈一ơ。(本题指中序遍历二叉树(wi)Q?a target="_blank">西安?sh)子U技大学1999计应?/span> ?/span> (10?/span>)?/span>

  Q?/span>3Q用非递归方式写出二叉?wi)中序遍历算法。?a target="_blank">׃U技大学 2002 六?/span>2 (9?/span>)?/span>

  【参考答案?/span>

  void InOrder(BiTree bt)

  {BiTree s[],p=bt; //s是元素ؓ(f)二叉?wi)结?gu)针的栈,定w_?/span>

  int top=0;

  while(p || top>0)

  {while(p) {s[++top]=p; bt=p->lchild;} //中序遍历左子?/span>

  if(top>0){p=s[top--]; printf(p->data); p=p->rchild;} //退栈,讉KQ{叛_?/span>

} }

2Q试l出二叉?wi)的自下而上、自双左的层ơ遍历算法。?a target="_blank">吉林大学 2001 ?/span> ?/span>2 Q?/span>8?/span>)?/span>

  【参考答案?/span>

  [题目分析] 借助队列和栈Q最后弹出栈中元素实现对二叉?wi)按自下至上Q自双左的层次遍历

  void InvertLevel(biTree bt) // 对二叉树(wi)按自下至上,自右臛_的进行层ơ遍?/span>

  {if(bt!=null)

  {StackInit(s); //栈初始化Q栈中存放二叉树(wi)l点的指?/span>

  QueueInit(Q); //队列初始化。队列中存放二叉?wi)结点的指?/span>

  QueueIn(Q,bt);

  while(!QueueEmpty(Q)) //从上而下层次遍历

  {p=QueueOut(Q); push(s,p); //出队, 入栈

  if(p->lchild) QueueIn(Q,p->lchild); //若左子女不空Q则入队?/span>

  if(p->rchild) QueueIn(Q,p->rchild);} //若右子女不空,则入队列

  while(!StackEmpty(s)) {p=pop(s); printf(p->data);} //自下而上,从右到左的层ơ遍?/span>

  }//if(bt!=null)

  } //l束InvertLevel

  

  3Q在一以二叉链表表示的二叉树(wi)上,试写出用按层ơ顺序遍历二叉树(wi)的方法,l计?wi)中h度ؓ(f)1的结Ҏ(gu)目的法。二叉链表的cd定义为:(x)

  TYPE bitreptr=^bnodetp;

  bnodetp=RECORD data:char; lchild,rchild:bitreptr END; ?a target="_blank">同济大学 2000 三?/span>2 Q?/span>12分)?/span>

  【参考答案?/span>

  int Level(BiTree bt) //层次遍历二叉?wi),q统计度?/span>1的结点的个数

  {int num=0; //numl计度ؓ(f)1的结点的个数

  if(bt){QueueInit(Q); QueueIn(Q,bt)Q?/span>//Q是以二叉?wi)结?gu)针ؓ(f)元素的队?/span>

  while(!QueueEmpty(Q))

  {p=QueueOut(Q); printf(p->data); //出队,讉Kl点

  if(p->lchild && !p->rchild ||!p->lchild && p->rchild)num++;//度ؓ(f)1的结?/span>

  if(p->lchild) QueueIn(Q,p->lchild); //非空左子奛_?/span>

  if(p->rchild) QueueIn(Q,p->rchild); //非空叛_奛_?/span>

  } }//if(bt)

  return(num); }//q回度ؓ(f)1的结点的个数

跨考考研评

班型 定向班型 开班时?/td> 高定?/td> 标准?/td> 评介绍 咨询
U季集训 冲刺?/td> 9.10-12.20 168000 24800?/td> 班面授+专业??+专业译֮向辅?协议加强评(高定?+专属规划{疑(高定?+_化答?复试资源(高定?+复试译֌(高定?+复试指导(高定?+复试班主?v1服务(高定?+复试面授密训(高定?+复试1v1(高定?
2023集训畅学 非定向(政英?数政qQ?/td> 每月20?/td> 22800?协议? 13800?/td> 先行阶在U课E?基础阶在U课E?强化阶在U课E?真题阶在U课E?冲刺阶在U课E?专业NҎ(gu)一对一评+班主dE督学服?全程规划体系+全程试体系+全程_化答?择校择专业能力定位体p?全年关键环节指导体系+初试加强?初试专属服务+复试全科标准班服?/td>

①凡本网注明“稿件来源:(x)跨考网”的所有文字、图片和韌频稿Ӟ版权均属北京学博教育咨询有限公司Q含本网和跨考网Q所有,M媒体、网站或个h未经本网协议授权不得转蝲、链接、{帖或以其他Q何方式复制、发表。已l本|协议授权的媒体、网站,在下载用时必须注明“稿件来源,跨考网”,q者本|将依法q究法律责Q?/p>

②本|未注明“稿件来源:(x)跨考网”的?囄Eg均ؓ(f)转蝲E,本网转蝲仅基于传递更多信息之目的Qƈ不意味着再通{载稿的观Ҏ(gu)证实其内容的真实性。如其他媒体、网站或个h从本|下载用,必须保留本网注明的“稿件来源”,q自负版权等法律责Q。如擅自改为“稿件来源:(x)跨考网”,本网依法追I法律责仅R?/p>

③如本网转蝲E涉?qing)版权等问题Q请作者见E后在两周内速来?sh)与跨考网联系Q电(sh)话:(x)400-883-2220