徐镜春数据结构习题.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文档。上传文档
查看更多
徐镜春数据结构习题

9.1 (1)无序表:顺序查找不成功时,查找长度为n+1;成功时,平均查找长度为1/(n+1)*(1+2+…+(n+1))=(n+2)/2;两者不相同。 (2)表中只有一个关键字等于给定值k的记录,无序表、有序表:顺序查找成功时,平均查找长度均为1/(n)*(1+2+…+n)=(n+1)/2;两者相同。 (3)表中只有m个关键字等于给定值k的记录,无序表:ASL=n+1;有序表:ASL=(n+1)/2+m;两者不相同。 ? 9.3 ASL=1/10(1+2*2+4*3+3*4)=2.9 ? 9.11 ? ? 9.14 ? 删除50后 ? ? 删除68后 ? 9.19 22 67 41 30 ? 53 46 ? 13 ? 01 0 1 2 3 4 5 6 7 8 9 10 ? ASL=(4*1+2*2+3+6)/8=17/8 ? 9.25 int Search-Seq(SSTable ST, KeyType key){ //在顺序表ST中顺序查找其关键字等于key的数据元素,ST按关键字自大至小有序, //若找到,则函数值为该元素在表中的位置,否则为0 ??ST.elem[ST.length+1].key=key; ??for (i=1; ST.elem[i].keykey; ++i); ??if (ST.elem[i].key==key)(i=ST.length) return i ??else return 0 ; }//Search-Seq ? 9.31 TelemType Maxv(Bitree T){ //返回二叉排序树T中所有结点的最大值 for (p=T; p-rchild; p=p-rchild); return p-data; }//Maxv ? TelemType Minv(Bitree T){ //返回二叉排序树T中所有结点的最小值 for (p=T; p-lchild; p=p-lchild); return p-data; }//Minv ? Status IsBST(Bitree T){ ??//判别T是否为二叉排序树 ??if (!T) return OK; ??else if ((!T-lchild)||((T-lchild)(IsBST(T-lchild)(Maxv(T-lchild)T-data))) ((!T-rchild)||((T-rchild)(IsBST(T-rchild)(Minv(T-rchild)T-data))) ???return OK else return ERROR; }//IsBST ? 9.33 Status OutputGEx(Bitree T, TelemType x){ ??//从大到小输出给定二叉排序树T中所有值不小于x的数据元素 ??if (T) { if (OutputGEx(T-rchild, x)) ????if (T-data=x) { ???????print(T-data); ???????if (OutputGEx(T-lchild, x)) return OK; ???????} ????else return OK; ??} ??else return OK; }//OutputGEx ? 第九章?查找 9.25 int Search_Sq(SSTable ST,int key)//在有序表上顺序查找的算法,监视哨设在高下标端 { ??ST.elem[ST.length+1].key=key; ??for(i=1;ST.elem[i].keykey;i++); ??if(iST.length||ST.elem[i].keykey) return ERROR; ??return i; }//Search_Sq 分析:本算法查找成功情况下的平均查找长度为ST.length/2,不成功情况下为ST.length. 9.26 int Search_Bin_Digui(SSTable ST,int key,int low,int high)//折半查找的递归算法 { ??if(lowhigh) return 0; //查找不到时返回0 ??mid=(low+high)/2; ??if(ST.elem[mid].key==key) return mid; ??else if(ST.elem[mid].keykey) ????return Search_Bin_Digui(ST,key,low,mid-1); ??else return Search_Bin_Digui(ST,key,mid+1,high); ??} }//Search_Bin_Digui 9.27 int Locate_Bin(SSTable ST,in

文档评论(0)

manyu + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档