数据结构例题解析_第1页
数据结构例题解析_第2页
数据结构例题解析_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SingleChoice(10points)(a)Forthefollowingprogramfragmenttherunningtime(Big-Oh)is.i=0;s=0;while(s<(5*n*n+2)){i++;s=s+i;}21/23O(n)b.O(n 2) c.O(n 1/2)d.O(n 3)(c)Whichisnon-lineardatastructure .queue c.tree d.sequencelist(b)Theworst-timeforremovinganelementfromasequencelist(Big-Oh)is.23O(1)b.O(n) c.O(n)d.O(n)(d)Inacircularqueuewecandistinguish(区分)emptyqueuesfromfullqueuesby.a.usingagapinthearrayincrementingqueuepositionsby2insteadof1acountofthenumberofelementsd.aandc(b)Arecursivefunctioncancauseaninfinitesequenceoffunctioncallsif.a.theproblemsizeishalvedateachsteptheterminationconditionismissingnousefulincrementalcomputationisdoneineachsteptheproblemsizeispositive6.(c)Thefullbinarytreewithheight4has nodes.a.15 b.16(b)Searchinginanunsortedlistcanbemadefasterbyusing .a.binarysearchasentinel(哨兵)attheendofthelistlinkedlisttostoretheelementsaandc(b)Supposethereare3edgesinanundirectedgraphG,IfwerepresentgraphGwithaadjacencymatrix,Howmany “1”sarethereinthematrix?TOC\o"1-5"\h\za.3 b.6 c.1 d.9(d)ConstructaHuffmantreebyfourleafwhoseweightsare9,2,5,7respectively.Theweightedpathlength is .a.29 b.37 c.46Considerthefollowingweightedgraph.ConsiderDijkstra'salgorithmonthisgraphtofindtheshortestpathswi thsasastartingvertex.Whicharethefirstfourverticesextractedfromthepriorityqueuebythealgorithm(listedintheordertheyareextracted)?a.s,y,t,xb.s,y,x,zc.s,t,y,xd.s,y,x,tFig.1Hereisanarrayoftenintegers:5389170264Supposewepartitionthisarrayusingquicksort'spartitionfunctionandusing5forthepivot.Whichshowsthearrayafterpartitionfinishes:a.5342107968b.034215796831024589673102458976NoneoftheaboveFillinBlank(10points)Forthefollowingprogramfragmenttherunningtime(Big-Oh)isO(n2).for(inti=0;i<n;i++)for(intj=0;j<=i;j++)s;Westorea4×4symmetricmatrixAintoanarrayBwithrowmajororder,Storethelowertriangleonly.theindexofelementa[2][3]inBis6.3.Wecanuse3vectortypetostorevalueandofnon-zeroelementsinasparsematrix.A stack isalistwhereremovalandadditionoccuratthesameend.FrequentlyknownaLIFO(Last-In-First-Out)structure.T(n)=2T(n/2)+cn,T(n)=O(logn)T(n)=T(n-1)+cn,T(n)=O( n )Thereisabinarytreewhoseelementsarecharacters.Preorderlistofthebinarytreeis“ABECDFGH”IJandinorderlistofthebinarytreeis “EBCDAFHIG”J.PostordertraversalsequenceofthebinarytreeisEDCBIHJGFA.7.Thereare (n+1)/2leafnodesinafullbinarytreewithnnodes.8.Whentheinputhasbeensorted,therunningtimeofinsertionsort(Big-Oh)isO(n).9.Wesortthesequence(43,02,80,48,26,57,15,73,21,24,66)withshellsortforincrement3,theresultis (1502212426574366804873)10、Inacircularqueue,“front”and“rear”arethefrontpointerandrearpointerrespectively. Queuesizeis“maxsize”.Wheninsertanelementinthequeue,rear=__(rear+1)%maxsize__11.A B树 isanexampleofasearchtreewhichismultiway(allowsmorethantwochildren).Atreeinwhicheverynodeisnosmallerthanitschildrenistermed 大顶堆 .ApplicationofAlgorithms (35points)GshowninFig2isadirectedgraph,pleasedescribeGwithadjacencymatrixandwritetheordersofbreadthfirsttraversalanddepthfirsttraversal.ABCDEA01010B00110C00001D00001E00000Dft:ABCEDBft:ABDCE2.Thesequenceofinputkeysisshownbelow:19 ,1,23,14,55,20,84,27,68,11,10,17Afixedtablesizeof19andahashfunctionH(key)=key%13,withlinearprobing(线性探测),fillthetablebelowandcomputetheaveragelengthofsuccessfulsearch.Showtheresultsofinserting53,17,78,09,45,65,87each,oneatatime,inainitiallyemptymaxheap(大根堆)writethesequenceofpreorder,postordertraversalsandaddinorderthreadsinthetree.Fig.3BuildaHuffmantreeanddetermineHuffmancodewhentheprobabilitydistribution(概率分布)overthe8alphabets(c1,c2,c3,c4,c5,c6,c7,c8)is,,,,,,,GraphGshowninFig4isadirectedgraph,pleasedescribeGwithadjacencylistandwritetopologicalordering.Fig.4Fillinblankofalgorithms. (15)1.HereissinglesourceshortestpathalgorithmDijkstra.Fillinblankofthealgorithm.classGraph{ #include<stack>Usingnamespacestd;intmatching(string&exp){Writeefficientfunctions(andgivetheirBig-Ohrunningtimes)thattakeapointertoabinarytreerootTandcompute:–ThenumberofleavesofTtypedefstructBiTNode{TElemTypedata;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;amethodcalledmaximumDegreeofanundirectedhgraphthatreturnsthemaximumdegreeofanyvertexinthegraph.Thegraphisstoredwithadjacencymatrix.Writethedefinitionofthegraph.implementthefunction.Analyzespacecomplexityandtimecomplexityofyourfunction.3.Writeafunctionwithlinkedlistthatinsertsanumberintoasortedlinkedlist.Firstly,youshouldwriteafunctioncreatesalistthatlikethis:L={3,5,8,12,32,48}andtheninsert25intothislist.答案解析0-0,仅供参考,若有不同意见请联系☆ _☆选择题:1-5:ACBDB6-11:CBBDDE1、知识点:复杂度分析,必考思路:复杂度主要计算算法的步数,可以看出,当前循环执行的步数与i的值是相等的,所以可列1+2+..+i=(5*n*n+2),复杂度的计算忽略常数,(1+i)*i/2=(5*n*n+2),i~O(n)2、知识点:non-linear与linear的区别3、知识点:复杂度分析+线性序列思路:很显然,当元素在sequencelist的末尾的时候,removing元素复杂度最高O(n)4、知识点:循环队列(circularqueue),重点思路:主要区分循环队列判断空与满的条件。主要有三个方法count计数,判断当前队列的元素与maxsize的大小vis标志,比如可以一开始设vis=0,满时设置vis=1就是题目中说的gap( 重点)front代表头指针,rear代表尾指针循环队列空时:front==rear; 满时:front==(rear+1)%maxsize5、知识点:递归的定义,terminationmissing,终止条件缺失则可能无限调用。6、知识点:完全二叉树(completebinarytree)与满二叉树(fullbinarytree)的区别思路:学院PPT上有如下定义depthofanode:numberofancestorsheightofatree:maximumdepthofanynode并且有结点计算公式:2h+1-1(其中h为树的高度,与某XX百度定义树的高度不一样,且照学院教材来做==)所以ans:24+1-1=317、知识点:查找思路:有疑问的题...单纯来说二分查找(binarysearch)的速度O(logN)是比较快的,可是题目仅仅要求Searchinginanunsortedlist, 只进行一次查找,那我们用二分还要先进行排序O(NlogN)+O(logN)的复杂度是不如选项b的。sentinel( 哨兵...)的概念可见ppt讲插入排序的地方,貌似能加快查找速度吧...8、知识点:图的邻接矩阵存储思路:注意题目所问,无向图(undirectedgraph),每条边都是要存储两遍的9、知识点:哈夫曼树(Huffmantree)思路:离散上学过的。。。weightedpathlength=权值路径长度所以ans=9*1+7*2+5*3+2*3=44(自己构造哈夫曼树》。《)10、知识点:Dijkstra/最短路,重点11、知识点:快排,重点10、11两题是重点,限文字难于描述清楚,请自主学习 %>_<%注意10题在priority_queue里进行更新时一开始肯定加入s、y结点,而后x结点会因为松弛操作从而距离变为1+3=4<5(t结点),所以x结点会比t结点先压入队列。二、填空题21、O(n2)2、 6 数组元素存储地址的计算。注意题目中规定存储下三角矩阵 lowertriangleonly3、 location 在稀疏矩阵中sparsematrix,如果对每个元素都进行存储的话空间复杂度为O(N2),因为好多位置没有值所以这会造成空间的极大浪费。可以用题目所说的,

只存储有值元素的值与位置(即i,j下标)。4、 stack栈(stack)与队列(queue)的区别,重点5、题目有问题。正确问法应该是这样:T(n)=2T(n/2)+cn,T(n)=O(T(n)=2T(n/2)+cn,T(n)=O( T(n)=T(n-1)+cn,T(n)=O( 时间复杂度计算。对题目有点疑问,故此题答案不确定。cn中的n是下标还cn相乘。)对于T(n)=2T(n/2)+cn对于T(n/2)又会转化为程度在递减。可以自T(16)->T(8)->T(4)->T(2)->T(1),logn )n )(不清楚这是按递归还递推进行计算得出,还有T(n)都会转化为2*T(n/2)+cn,2的指数次幂的那计算过程为T(n)=T(n-1)+cn,可以这样想,每次计算T(n/4)的计算,如此计算下去,其实就是按己举个例子,所以计比如计算T(16),算次数为log16=4,类似的复杂度可以计算。6、 树的前、中、后序遍历,重点首先要明白前、中、后序遍历是根据根的位置决定的,比如前序遍历就是 (根左右),中序遍历为(左根右) 首先你得能很熟练的写出一棵树的前、中、后序遍历(preorder、inorder、postorder),然后可以进行一下分析,对于前序遍历 ABECDFGHI,J中序遍历EBCDAFHIG,J由前序遍历可知根结点肯定为A,那么从中序遍历里面可以以A为中点进行分割,左边的部分必定属于左子树,右边的部分肯定属于右子树,然后进行一步步分割,自己多尝试一下就ok了构造树如下:所以后序遍历为:EDCBIHJGFAps:已知前序遍历和后序遍历,不能确定唯一的中序遍

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论