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

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

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

1Q有n个结点的完全二叉?wi)存攑֜一l数l?/span>A[1..n]中,试据此徏立一는二叉链表表示的二叉树(wi) Q根?/span>tree指向?/span> ?a target="_blank">南京理工大学 1998 七?/span>1 Q?/span>6分)(j)?/span>

  【参考答案?/span>

  BiTree Creat(ElemType A[],int i)

  //n个结点的完全二叉?wi)存(sh)一l数l?/span>A中,本算法据此徏立以二叉链表表示的完全二叉树(wi)

  {BiTree tree;

  if (i<=n){tree=(BiTree)malloc(sizeof(BiNode)); tree->data=A[i];

  if(2*i>n) tree->lchild=nullQ?/span>else tree->lchild=Creat(A,2*i)Q?/span>

  if(2*i+1>n) tree->rchild=nullQ?/span>else tree->rchild=Creat(A,2*i+1)Q?/span> }

  return (tree)Q?/span> }//Creat

[法讨论]初始调用?/span>,i=1?/span>

2Q已知深度ؓ(f)h的二叉树(wi)采用序存储l构已存放于数组BT[1:2h-1]中,请写一非递归法Q生该二叉?wi)的二叉链表l构。设二叉链表中链l点的构造ؓ(f)(lchild,data,rchild),根结Ҏ(gu)在链l点的指针由Tl出。?a target="_blank">北京航空航天大学 1999 七?/span> (15?/span>)?/span>

  【参考答案?/span>

  [题目分析]二叉?wi)采用顺序存储结构(一l数l)(j)是按完全二叉?wi)的形状存储的,不是完全二叉树(wi)的二叉树(wi)顺序存储时Q要加“虚l点”。数l中的第一个元素是根结炏V本题(sh)采用队列l构?/span>

  typedef struct

  {BiTree bt; //二叉?wi)结?gu)?/span>

  int num; }tnode // num是结点在一l数l中的编?/span>

  tnode Q[maxsize]; //循环队列,定w_?/span>

  void creat(BiTree T,ElemType BT[ ])

  //深度h的二叉树(wi)存(sh)一l数l?/span>BT[1:2h-1]中,本算法生成该二叉?wi)的二叉链表存储l构

  {tnode tq; //tq是队列元?/span>

  int len=2h-1; //数组长度

  T=(BiTree)malloc(sizeof(BiNode)); //甌l点

  T->data=BT[1]; //根结Ҏ(gu)?/span>

  tq.bt=T; tq.num=1;

  Q[1]=tq; //根入队列

  front=0;rear=1; //循环队列头、尾指针

  while(front!=rear) //当队列不I时循环

  {front=(front+1) % maxsize ;

  tq=Q[front] ; p=tq.bt; i=tq.num ; //出队Q取出结点及(qing)~号

  if (BT[2*i]==?/span>#?/span>||2*i>len) p->lchild=null; //左子?wi)?f)I,?/span>#’表Cl点

  else //建立左子女结点ƈ入队?/span>

  {p->lchild=(BiTree) malloc(sizeof(BiNode)); //甌l点I间

  p->lchildàdata=BT[2*i]; // 左子x(chng)?/span>

  tq.bt=p->lchild; tq.num=2*i; rear=(rear+1) % maxsize ;//计算队尾位置

  Q[rear]=tq; //左子女结点及(qing)其编号入?/span>

  }

  if(BT[2*i+1]==?/span>#?/span>|| 2*i+1>len) p->rchild=null; //叛_?wi)?f)I?/span>

  else //建立叛_女结点ƈ入队?/span>

  {p->rchild=(BiTree)malloc(sizeof (BiNode); //甌l点I间

  p->rchild->data=BT[2*i+1]; tq.bt=p->rchild; tq.num=2*i+1;

  rear=(rear+1)%maxsize; Q[rear]=tq; //计算队尾位置,叛_奛_(qing)其编号入?/span>

  }

  } //while

  }//l束creat

  [法讨论] 本题?sh)的虚结点用?/span>#’表C。应Ҏ(gu)二叉?wi)的l点数据的类型而定?/span>

跨考考研评

班型 定向班型 开班时?/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