freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)習(xí)題集答案(c版)(清華大學(xué)嚴(yán)蔚敏)(參考版)

2025-06-25 17:05本頁面
  

【正文】 } else { while(cp[pj]down) 。 //插入行鏈表中 if(![pj]) { [pj]=p。pj=pbj。pre=p。 else preright=p。 while(pb) { if(pa==NULL||pajpbj) //新插入一個(gè)結(jié)點(diǎn) { p=(OLNode*)malloc(sizeof(OLNode))。pb=。i=。j++) cp[j]=[j]。A,OLMatrix B)//把十字鏈表表示的矩陣B加到A上 { for(j=1。iright) //逐次遍歷每一個(gè)行鏈表 printf(%d %d %d\n,i,pj,pe。 } }//for =pc。 pb++。 [pc].j=[pb].j。pc++。 [pc].j=[pa].j。pc++。 [pc].j=[pa].j。pc++。 [pc].e=[pb].e。x++) //對(duì)矩陣的每一行進(jìn)行加法 { while([pa].[pb].j) { [pc].i=x。 for(x=1。pb=1。i++) [+i]=。A,TSMatrix B)//將三元組矩陣B加到A上 { for(i=1。 } }//for =pc。 pb++。 [pc].j=[pb].j。pc++。 [pc].j=[pa].j。pc++。 [pc].j=[pa].j。pc++。 [pc].e=[pb].e。[pb].j) { [pc].i=x。//求n和k的最大公約數(shù)p for(i=0。amp。i=k。 }//Get_LPubSub 分析:,由于A,B互不相同,因此B不僅要向右錯(cuò)位,而且還要向左錯(cuò)位,需要匹配的區(qū)間的計(jì)算公式也各不相同,(strlrn(s)*strlen(t))。 printf(Position in S:%d Position in T:%d\n,lpsS,lpsT)。lpsT=lps1。lpsT=lps2。maxlen=k。 if(kmaxlen) { lps1=jk+1。j++) { if(A[j]==B[ji]) k++。 }//B在A左右兩端之間. //以上是根據(jù)A和B不同的相對(duì)位置確定A上需要匹配的區(qū)間(與B重合的區(qū)間)的端點(diǎn):jmin,jmax. for(k=0,j=jmin。 }//B有一部分在A右端的右邊 else { jmin=i。iA[0]B[0]) { jmin=i。StrAssign(B,S)。StrAssign(B,T)。 } else printf(No Repeating Substring found!\n)。 //作記錄 } }//for }//for if(maxlen) { printf(Longest Repeating Substring length:%d\n,maxlen)。lrs2=mrs1+i。 }//LIndex_KMP void Get_LRepSub(Stringtype S)//求S的最長重復(fù)子串的位置和長度 { for(maxlen=0,i=1。 return p。i=Strlen(T)。 } else q=qnext。q) { if(q==T||pchdata==qchdata) { p=psucc。 while(pamp。 }//while }//LGet_next LStrNode * LIndex_KMP(LString S,LString T,LStrNode *pos)//鏈串上的KMP匹配算法,返回值為匹配的子串首指針 { p=pos。 pnext=q。 while(psucc) { if(q==T||pdata==qdata) { p=psucc。pnext=T。 }//Index_New void LGet_next(LString amp。 插入串T [pos+i1]=[pos]。amp。 //后移為插入字符串讓出位置 for(i=0。i=pos1。//當(dāng)插入位置大于串長時(shí),看作添加在串尾 =realloc(,(+)*sizeof(char))。 for(l=0。l++) 新子串長度大于原子串時(shí):先將后部右移 if(=i+。 if(k==) { for(l=1。[J]==[K]。kamp。i=。 }//HString_Concat int HString_Replace(HString amp。j++,i++) [i1]=[j1]。 for(j=1。i=。 =malloc((+)*sizeof(char))。 //成功匹配 }//LString_Palindrome void HString_Concat(HString s1,HString s2,HString amp。 i=0。 //將后半段的字符與棧中的元素相匹配 if(pch!=c) return 0。k++) { if(k=) Push(S,pch)。 //i指示元素在塊中的下標(biāo),k指示元素在整個(gè)序列中的序號(hào)(從1開始) for(k=1。i=0。 }//Find_Char int LString_Palindrome(LString L)//判斷以塊鏈結(jié)構(gòu)存儲(chǔ)的串L是否為回文序列,是則返回1,否則返回0 { InitStack(S)。 if(i==CHUNKSIZE) return 0。Pch!=c。iCHUNKSIZEamp。 //修改串長 =0。 rnext=q。 } pnext=。 //p的后半部分和r的前半部分的字符改為無效字符39。 pch[j]=39。 //原結(jié)點(diǎn)p包含c及其以前的部分 for(j=i。jch[j]=39。 r=(Chunk*)malloc(sizeof(Chunk))。 =。!(i=Find_Char(p,c))) p=pnext。 while(pamp。t,LString amp。 return p。 qch=rch。i++,r=rnext) { qnext=(LStrNode*)malloc(sizeof(LStrNode))。 //找到start所對(duì)應(yīng)的結(jié)點(diǎn)指針r for(i=1。start。q=p。 return p。 qch=rch。r=rnext) { qnext=(LStrNode*)malloc(sizeof(LStrNode))。 }//for //復(fù)制串s for(r=tnext。 q=qnext。r。 }//StringLen LString * Concat(LString s,LString t)//連接串s和串t形成新串,并返回指針 { p=malloc(sizeof(LStrNode))。p=pnext,i++)。 }//StringCompare int StringLen(LString s)//求串s的長度(元素個(gè)數(shù)) { for(i=0,p=snext。 else if(!q) return pch。!q) return 0。 if(!pamp。pch==qch。qamp。pamp。 } pnext=NULL。 prenext=p。 } while(q) { p=(LStrNode*)malloc(sizeof(LStrNode))。p=pnext,q=qnext) { pch=qch。amp。s,LString t)//,串s業(yè)已存在. { for(p=snext,q=tnext。 } qnext=NULL。 qnext=r。p=pnext) { r=(LStrNode*)malloc(sizeof(LStrNode))。 for(q=s,p=tnext。 //鏈串結(jié)構(gòu) void StringAssign(LString amp。 LStrNode *next。 } }//for return n。 //左移刪除 s[0]=t[0]。k=s[0]t[0]。j++)。amp。i++) { for(j=1。s,Stringtype t)//從串s中刪除所有與t相同的子串,并返回刪除次數(shù) { for(n=0,i=1。 { if(i==j) 判斷s的當(dāng)前字符c是否第一次出現(xiàn)t[0]) r[++r[0]]=c。t[k]!=c。k=t[0]amp。J++)。amp。 for(j=1。i=s[0]。r)//求所有包含在串s中而t中沒有的字符構(gòu)成的新串r { r[0]=0。j++) printf(%c: %d\n,T[j].ch,T[j].num)。 }//for for(j=0。 //查找當(dāng)前字符c是否已記錄過 if(T[j].ch) T[j].num++。amp。j=0。i=S[0]。 void StrAnalyze(Stringtype S)//統(tǒng)計(jì)串S中字符的種類和個(gè)數(shù) { mytype T[MAXSIZE]。 int num。 }//if }//for return n。 i+=V[0]。l++) S[i+l1]=V[l]。 for(l=1。l=S[0]+V[0]T[0]。l++) S[i+l1]=V[l]。 for(l=1。 else if(T[0]=i+T[0]。l=T[0]。j++,k++)。amp。i++) { for(j=i,k=1。//將串S中所有子串T替換為V,并返回置換次數(shù) { for(n=0,i=1。 }//StrCompare int String_Replace(Stringtype amp。 else if(it[0]) return s。it[0]) return 0。 }//StrAssign char StrCompare(Stringtype s,Stringtype t)//串的比較,st時(shí)返回正數(shù),s=t時(shí)返回0,ss[0]amp。chars。T,char charsamp。 return OK。 } }//for pop(s,new)。 StrAssign(c,Concat(t,a))。 pop(s,b)。 pop(s,a)。 if(r為字母) push(s,r)。i=Strlen(str)。new)//把前綴表達(dá)式str轉(zhuǎn)換為后綴式new { Initstack(s)。 //把head,tail連接為新串 n++。 StrAssign(tail,SubString(S,i+Strlen(t),Strlen(s)iStrlen(t)+1))。i=Strlen(s)Strlen(t)+1。運(yùn)行時(shí)會(huì)出現(xiàn)什么結(jié)果? int Delete_SubString(Stringtype amp。face39。ace39。place39。 }//Replace 分析:i+=Strlen(V)。 //當(dāng)前指針跳到插入串以后 n++。 StrAssign(S,Concat(S,tail))。 StrAssign(tail,SubString(S,i+Strlen(T),Strlen(S)iStrlen(T)+1))。i=Strlen(S)Strlen(T)+1。S,Stringtype T,Stringtype V)。 { if(i==j) 判斷s的當(dāng)前字符c是否第一次出現(xiàn)Strlen(t)) StrAssign(r,Concat(r,c))。StrCompare(c,SubString(t,k,1))。k=Strlen(t)amp。J++)。amp。 for(j=1。i=Strlen(s)。)。r)//求所有包含在串s中而t中沒有的字符構(gòu)成的新串r { StrAssign(r,39。 StrAssign(r,Concat(r,c))。i。)。r)//求s的逆串r { StrAssign(r,39。 { }//while //1表示把H車廂從尾端入隊(duì)列 { } EnDQueue(Q,*r,0)。 printf(E)。) else if(*r==39。 //實(shí)際上等于不入隊(duì)列,直接輸出P車廂 {P39。 {表示軟臥,最終按PSH的順序排列{表示硬臥,39。表示硬座,39。}//DeDQueuevoid Train_Rearrange(char *train)//這里用字符串train表示火車,39。 //隊(duì)列空x)//輸出受限的雙端隊(duì)列的出隊(duì)操作{}//EnDQueueStatus DeDQueue(DQueue amp。 } //插入在隊(duì)頭 []=x。 =()%MAXSIZE。 else { //隊(duì)列滿Q,int x)//輸出受限的雙端隊(duì)列的入隊(duì)操作{ //求第i項(xiàng)的值存入隊(duì)列中并取代已無用的第一項(xiàng)jk。 m=i%k。i++) for(i=k。i++) printf(%d,)。 for(i=0。 [k1]=1。i++) =0。 for(i=0。 InitCyQueue(Q)。 return OK。 Pop(S,a)。 while(!StackEmpty(S)) //同時(shí)使用棧和隊(duì)列兩種結(jié)構(gòu) Push(S,c)。) while((c=getchar()!=39。InitQueue(Q)。}//DeCyQueueint Palindrome_Test()//判別輸入的字符串是否回文序列,是則返回1,否則返回0{ //詳見書后注釋x)//帶length域的循環(huán)隊(duì)列出隊(duì)算法{}//EnCyQueueStatus DeCyQueue(CyQueue amp。Q,int x)//帶length域的循環(huán)隊(duì)列入隊(duì)算法{ return OK。 if(==) =1。 x=[]。 =(+1)%MAXSIZE。==0) return INFEASIBLE。 if(==amp。Q,int amp。 if(==) =1。 =(+1)%MAXSIZE。 []=x。 return OVERFLOW。amp。Q,in
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1