数据结构研究生入学考试习题目.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录 TOC \o 1-1 \h \u 6938 线性 2 32381 树形 4 12803 图形结构 8 12625 查找 10 3319 排序 14 线性 单选(2009_408) 2.C 设栈 S 和队列 Q 的初始状态均为空,元素 a,b,c,d,e,f,g 依次进入栈 S。若每个元素出栈后立即进入队列 Q,且 7 个元素出队的顺序是 b,d,c,f,e,a, g,则栈 S 的容量至少是 。 A.1 B.2 C.3 D.4 填空 解答 阅读算法 编写算法(2019_408) 树形 单选(2019_408) 2. B 若将一棵树 T 转化为对应的二叉树 BT,则下列对 BT 的遍历中,其遍历序列与 T 的后 根遍历序列相同的是 A.先序遍历 B.中序遍历 C.后序遍历 D.按层遍历 3. C (2019_408_) 对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值 A.56 B.57 C.58 D.60 填空 解答(2016_408) 42.(8分)如果一棵非空k(k≥2)叉树T中每个非叶结点都有k个孩子,则称T为正则后k树。请回答下列问题并给出推导过程。 (1)若T有m个非叶结点,则T中的叶结点有多少个? (2)若T的高度为h(单结点的树h=1),则T的结点数最多为多少个?最少为多少个? 阅读算法 编写算法(2014_408) 3)算法代码如下: ①基于先序遍历的算法: int WPL(BiTree root){ return wpl_PreOrder(root, 0); } int wpl_PreOrder(BiTree root, int deep){ static int wpl = 0; //定义一个 static 变量存储 wplif(root-lchild == NULL root-lchild == NULL) //若为叶子结点,累积 wpl wpl += deep*root-weight; if(root-lchild != NULL) //若左子树不空,对左子树递归遍历 wpl_PreOrder(root-lchild, deep+1); if(root-rchild != NULL) //若右子树不空,对右子树递归遍历 wpl_PreOrder(root-rchild, deep+1); return wpl; } ②基于层次遍历的算法: #define MaxSize 100 //设置队列的最大容量 int wpl_LevelOrder(BiTree root){ BiTree q[MaxSize]; //声明队列,end1 为头指针,end2 为尾指针 int end1, end2; //队列最多容纳 MaxSize-1 个元素 end1 = end2 = 0; //头指针指向队头元素,尾指针指向队尾的后一个元素 int wpl = 0, deep = 0; //初始化 wpl 和深度 BiTree lastNode; //lastNode 用来记录当前层的最后一个结点 BiTree newlastNode; //newlastNode 用来记录下一层的最后一个结点 lastNode = root; //lastNode 初始化为根节点 newlastNode = NULL; //newlastNode 初始化为空 q[end2++] = root; //根节点入队 while(end1 != end2){ //层次遍历,若队列不空则循环 BiTree t = q[end1++]; //拿出队列中的头一个元素 if(t-lchild == NULL t-lchild == NULL){ wpl += deep*t-weight; } //若为叶子结点,统计 wpl if(t-lchild != NULL){ //若非叶子结点把左结点入队 q[end2++] = t-lchild; newlastNode = t-lchild; } //并设下一层的最后一个结点为该结点的左结点 if(t-rchild != NULL){//处理叶节点 q[end2++] = t-rchild; newlastNode = t-rchild; } if(t == lastNode){ //若该结点为本层最后一个结点,更新 lastNode lastNode = newlastNode; deep += 1; //层数加 1 } } return wpl; //返回 wpl }

文档评论(0)

新起点 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档