1、亚信校招笔试题目1.BSTpublicclassBSTMinLengthpublicstaticvoidmain(Stringargs)TreeNodetNode11=newTreeNode(10,null,null);TreeNodetNode12=newTreeNode(50,null,null);TreeNodetNode13=newTreeNode(5,null,null);TreeNodetNode14=newTreeNode(30,null,null);TreeNodetNode21=newTreeNode(30,tNode11,tNode12);TreeNodetNode22=n
2、ewTreeNode(30,tNode13,tNode14);TreeNodetNodeRoot=newTreeNode(100,tNode21,tNode22);privatestaticintminlength(TreeNodetNode)if(tNode!=null)returngetlength(tNode,0);return-1;privatestaticintgetlength(TreeNodetNode,intcurLength)intminLeft=-1;intminRight=-1;if(tNode.leftNode!=null)minLeft=getlength(tNode
3、.leftNode,curLength+tNode.value);if(tNode.rightNode!=null)minRight=getlength(tNode.rightNode,curLength+tNode.value);if(tNode.leftNode=null&tNode.rightNode=null)returncurLength+tNode.value;if(tNode.leftNode=null)returnminRight;if(tNode.rightNode=null)returnminLeft;returnminLeftminRight?minRight:minLe
4、ft;classTreeNodeintvalue;TreeNodeleftNode;TreeNoderightNode;TreeNode(intvalue,TreeNodelefeNode,TreeNoderightNode)this.value=value;this.leftNode=lefeNode;this.rightNode=rightNode;2.lru#includeusingnamespacestd;intlruCountMiss(intmax_cache_size,int*pages,intlen)intcount=0;inti,j,k,n;boolflag=false;int
5、*a=newintmax_cache_size;/初始化高速缓存数组for(i=0;imax_cache_size;i+)ai=-1;for(j=0;jlen;j+)for(i=0;imax_cache_size;i+)if(pagesj!=ai)continue;elsebreak;if(i!=max_cache_size)for(k=i;kmax_cache_size;k+)if(ak=-1)flag=true;break;if(!flag)for(n=i;nmax_cache_size-1;n+)an=an+1;amax_cache_size-1=pagesj;elseflag=fals
6、e;for(n=i;nk-1;n+)an=an+1;ak-1=pagesj;elsecount+;for(i=0;imax_cache_size;i+)if(ai=-1)ai=pagesj;flag=true;break;if(!flag)for(i=0;imax_cache_size-1;i+)ai=ai+1;amax_cache_size-1=pagesj;elseflag=false;returncount;intmain()intarr=7,0,1,2,0,3,0,4;coutlruCountMiss(3,arr,8)next; curr-next=prev; while(next!=
7、NULL) prev=curr; curr=next; next=next-next; curr-next=prev; returncurr; else returnhead; ;lnode*reverseLinkedList(lnode*list)if(list)lnode*ori=list;lnode*half=list;lnode*prev=list;while(list&half&half-next)prev=list;list=list-next;half=half-next;if(half)half=half-next;if(list)prev-next=reverse(list)
8、;returnori;returnlist;4.SJFfloatwaitingTimeSJF(int*requestTimes,int*durations,intn)int*flags=newintn;floatsums=0;for(inti=0;in;i+)flagsi=-1;intnowtime=0;for(inti=0;in;i+)intcount=0;for(intk=0;kn;k+)if(count=0)if(requestTimesk=0)flagscount+=k;elseif(durationsk=0&requestTimesk=nowtime)if(durationskdur
9、ationsflags0)count=1;flags0=k;elseif(durationsk=durationsflags0)flagscount+=k;if(count=0)count=1;for(intj=0;j=0)flags0=j;nowtime=requestTimesj;intidx=flags0;intminreq=requestTimesflags0;intmindrus=durationsidx;if(count1)for(intj=1;jcount;j+)if(requestTimesflagsjminreq)minreq=requestTimesflagsj;idx=f
10、lagsj;sums+=nowtime-requestTimesidx;nowtime+=durationsidx;requestTimesidx=-1;durationsidx=-1;returnsums/n;5无向连通判断是否为树#include#include#includeconstintN=10000,M=100000;booledgeNN;/数组记录两点是否存在边boolvisitN;/标记该节点是否访问过boolDFS_check(intx,inty=-1)if(visitx)returnfalse;visitx=true;inti;for(i=0;iN;i+)if(edgexi
11、&i!=y)if(visiti)returnfalse;elseif(!DFS_check(i,x)returnfalse;returntrue;intmain()intn,m;scanf(%d%d,&n,&m);memset(edge,false,sizeof(edge);inti,x,y;for(i=0;im;i+)scanf(%d%d,&x,&y);edgex-1y-1=true;edgey-1x-1=true;memset(visit,false,sizeof(visit);boolresult=DFS_check(0);if(result)for(i=0;in;i+)if(!visi
12、ti)result=false;if(result)printf(Yes!n);elseprintf(No!n);system(pause);return0;6.老鼠奶酪#includeusingnamespacestd;intisPath(int*grid,intm,intn);struct_TraversedNodeintx;inty;_TraversedNode*next;struct_Nodeintx;inty;intmain(intargc,constchar*argv)int*grid=newint*8;for(inti=0;i8;i+)gridi=newint8;grid00=1
13、;grid01=1;grid02=0;grid03=0;grid04=0;grid05=0;grid06=0;grid07=1;grid10=1;grid11=1;grid12=1;grid13=1;grid14=1;grid15=1;grid16=1;grid17=1;grid20=1;grid21=0;grid22=0;grid23=0;grid24=1;grid25=0;grid26=0;grid27=1;grid30=1;grid31=1;grid32=1;grid33=0;grid34=1;grid35=0;grid36=0;grid37=1;grid40=0;grid41=1;gr
14、id42=0;grid43=0;grid44=1;grid45=1;grid46=1;grid47=1;grid50=0;grid51=1;grid52=0;grid53=0;grid54=0;grid55=0;grid56=0;grid57=1;grid60=0;grid61=1;grid62=0;grid63=9;grid64=1;grid65=1;grid66=1;grid67=1;grid70=0;grid71=1;grid72=1;grid73=1;grid74=0;grid75=0;grid76=1;grid77=0;for(inti=0;i8;i+)for(intj=0;j8;j
15、+)coutgridij;coutx=0;TraversedNode-y=0;head=TraversedNode;p=TraversedNode;p-next=NULL;intcount_node=0;intnum_node=1;_Node*node=new_Noden+m;_Node*node_next=new_Noden+m;node0.x=0;node0.y=0;while(1)for(inti=0;inum_node;i+)if(nodei.x+1=m-1)if(gridnodei.x+1nodei.y!=0)if(gridnodei.x+1nodei.y=9)step+;cout可
16、以最短step步到达终点x=nodei.x+1)&(p_check-y=nodei.y)p_check=NULL;flag_down_success=false;elsep_check=p_check-next;if(flag_down_success)TraversedNode=new_TraversedNode;TraversedNode-x=nodei.x+1;TraversedNode-y=nodei.y;p-next=TraversedNode;p=TraversedNode;p-next=NULL;node_nextcount_node.x=nodei.x+1;node_nextc
17、ount_node.y=nodei.y;count_node+;flag_down_success=true;if(nodei.x-1=0)if(gridnodei.x-1nodei.y!=0)if(gridnodei.x-1nodei.y=9)step+;cout可以最短step步到达终点x=nodei.x-1)&(p_check-y=nodei.y)p_check=NULL;flag_up_success=false;elsep_check=p_check-next;if(flag_up_success)TraversedNode=new_TraversedNode;TraversedNo
18、de-x=nodei.x-1;TraversedNode-y=nodei.y;p-next=TraversedNode;p=TraversedNode;p-next=NULL;node_nextcount_node.x=nodei.x-1;node_nextcount_node.y=nodei.y;count_node+;flag_up_success=true;if(nodei.y+1=n-1)if(gridnodei.xnodei.y+1!=0)if(gridnodei.xnodei.y+1=9)step+;cout可以最短step步到达终点x=nodei.x)&(p_check-y=no
19、dei.y+1)p_check=NULL;flag_right_success=false;elsep_check=p_check-next;if(flag_right_success)TraversedNode=new_TraversedNode;TraversedNode-x=nodei.x;TraversedNode-y=nodei.y+1;p-next=TraversedNode;p=TraversedNode;p-next=NULL;node_nextcount_node.x=nodei.x;node_nextcount_node.y=nodei.y+1;count_node+;fl
20、ag_right_success=true;if(nodei.y-1=0)if(gridnodei.xnodei.y-1!=0)if(gridnodei.xnodei.y-1=9)step+;cout可以最短step步到达终点x=nodei.x)&(p_check-y=nodei.y-1)p_check=NULL;flag_left_success=false;elsep_check=p_check-next;if(flag_left_success)TraversedNode=new_TraversedNode;TraversedNode-x=nodei.x;TraversedNode-y=
21、nodei.y-1;p-next=TraversedNode;p=TraversedNode;p-next=NULL;node_nextcount_node.x=nodei.x;node_nextcount_node.y=nodei.y-1;count_node+;flag_left_success=true;if(count_node=0)cout不存在到达终点的路径endl;return0;break;step+;num_node=count_node;count_node=0;for(inti=0;inum_node;i+)nodei.x=node_nexti.x;nodei.y=nod
22、e_nexti.y;cout(nodei.x,nodei.y);coutendl;7格雷码public?static?int?gray(byte?term1,byte?term2)int?n=0;for(int?i=0;i1);term2=(byte)(term1);if(n=1)return?1;elsereturn0;8.#includeusingnamespacestd;voidmyPrint(intn) if(1=n) cout1*2endl; return; intlastnumber=n*(n+1);/每一行最后一个数 intfirst=1;/每一行第一个数 intnum=1; intstep=n; for(inti=1;i=n;i+) for(intj=1;ji;j+)/输出- cout-; num=first; for(intl=0;l(n-i+1);l+)/每一行的前半部分 coutnum*; num+; num=lastnumber-step+1; coutnum; num+; for(l=0;l(n-i);l+)/每一行的后半部分 cout*num; num+; coutendl; /修改first和lastnumber first=first+step;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1