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

正文內(nèi)容

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

2025-06-28 17:05本頁面
  

【正文】 t x)//帶tag域的循環(huán)隊(duì)列入隊(duì)算法{ return OK。 free(p)。 Qnextnext=pnext。 x=pdata。 p=Qnextnext。 if(Q==Qnext) return INFEASIBLE。 //修改尾指針}Status DeCiQueue(CiQueue amp。 Q=p。 Qnext=p。 pnext=Qnext。 pdata=x。 p=(CiLNode*)malloc(sizeof(CiLNode))。}//InitCiQueuevoid EnCiQueue(CiQueue amp。Q)//初始化循環(huán)鏈表表示的隊(duì)列Q{ return p。 p=(p+A/p)/2。}//Sqrt_recurvefloat Sqrt_nonrecursive(float A,float p,float e)//求平方根的非遞歸算法{}//F_nonrecursivefloat Sqrt_recursive(float A,float p,float e)//求平方根的遞歸算法{ } { }//while n=b。 push(s,{a,b})。b=n/2。 {} //s的元素類型為struct {int a。 {}//F_recursiveStatus F_nonrecursive(int n,int s)//非遞歸算法{ } s=n*r。 F_recurve(n/2,r)。 else if(n==0) s=n+1。 if(n0) return ERROR。}//gStatus F_recursive(int n,int amp。amp。amp。s)//求遞歸函數(shù)g的值s{ return OK。 if(!StackEmpty(s)) return ERROR。 pop(s,new)。 }//else push(s,c)。 c=link(link(*p,b),a)。 pop(s,b)。 if(StackEmpty(s)) return ERROR。 pop(s,a)。 if(StackEmpty(s)) return ERROR。 else if(*p為字母) push(s,*p)。 while(*p)Initstack(s)。new)//把逆波蘭表達(dá)式str轉(zhuǎn)換為波蘭式new{return r。 }//while p++。 //假設(shè)pute為執(zhí)行雙目運(yùn)算的過程 pop(s,a)。 else if(*p是數(shù)) push(s,*p)。 while(*p)InitStack(s)。 }//while}//NiBoLan //參見編譯原理教材 int GetValue_NiBoLan(char *str)//對逆波蘭式求值{ p++。 }//else push(s,*p)。 pop(s,c)。 while(gettop(s)優(yōu)先級不比*p低) else if(*p優(yōu)先級比c高) push(s,*p)。 c=gettop(s)。 else if(*p是字母)) *q++=*p。 while(*p) InitStack(s)。q=new。 }//while}//Repaint_Color分析:本算法采用了類似于圖的廣度優(yōu)先遍歷的思想,?void NiBoLan(char *str,char *new)//把中綴表達(dá)式str轉(zhuǎn)換成逆波蘭式new{ //修改下鄰點(diǎn)的顏色 { if(yn) //修改右鄰點(diǎn)的顏色 { if(xm) //修改上鄰點(diǎn)的顏色 { if(y1) //修改左鄰點(diǎn)的顏色 { if(x1)y=。 {void Repaint_Color(int g[m][n],int i,int j,int color)//把點(diǎn)(i,j)相鄰區(qū)域的顏色置換為color{ }//AllBrackets_Testtypedef struct {. }//for //必須與當(dāng)前棧頂括號匹配{39。amp。}39。[39。amp。]39。(39。amp。)39。 {}39。]39。)39。{39。[39。(39。 {*p。}//Bracket_TestStatus AllBrackets_Test(char *str)//判別表達(dá)式中三種括號是否匹配{ //注意括號不匹配的兩種情況 } if (count0) return ERROR。) count。 else if(*p==39。) count++。 if(*p==39。p++) for(p=str。 count=0。 return 1。 if(!StackEmpty(s)) return 0。 {39。)amp。后部分是否為逆串,是則返回1,否則返回0{amp。39。 }}//Train_arrangeint IsReverse()//判斷輸入的字符串中39。H39。 *(q++)=c。 pop(s,c)。 while(!StackEmpty(s))調(diào)到前部 //把39。存入棧中 //把39。H39。 { p=train。S39。H39。 return OK。 else return ERROR。 { } x=*[0]。 if([0]==[0]) return OVERFLOW。 if(i==0)tws,int i,Elemtype amp。 return OK。 else return ERROR。 else if(i==1) *[1]=x。 if(i==0) *[0]++=x。 if([0][1]) return OVERFLOW。}//Init_StackStatus push(BDStacktype amp。tws,int m)//初始化一個(gè)大小為m的雙向棧tws{ }BDStacktype。 Elemtype *top[2]。 Elemtype *base[2]。pbnext=B。}p=pnext。}else{pbnext=p。while(p!=L){if(p!=2*(p)){panext=p。pa=A。A=(PolyNode*)malloc(sizeof(PolyNode))。A,amp。}}//QiuDao_LinkedPoly void Divide_LinkedPoly(LinkedPoly amp。 //跳過常數(shù)項(xiàng)}while(p!=L){p*=p。if(!p){Lnext=pnext。}}//Subtract_SqPoly void QiuDao_LinkedPoly(LinkedPoly amp。q++。}while(qcoef){rcoef=qcoef。p++。}//else}//whilewhile(pcoef) //處理P1或P2的剩余項(xiàng){rcoef=pcoef。}//ifp++。rexp=pexp。r++。rexp=qexp。r++。rexp=pexp。amp。r=。 //建立空多項(xiàng)式P3p=。 3)//求稀疏多項(xiàng)式P1減P2的差式P3{PolyTerm *p,*q,*r。}return sum。sum+=qcoef*xp。ex=0。q=。}//Locate_DuList float GetValue_SqPoly(SqPoly P,int x0)//求升冪順序存儲的稀疏多項(xiàng)式的值{PolyTerm *q。ppre=q。pnext=qnext。pnextpre=ppre。while(qfreq=pfreq) q=qpre。 //沒找到pfreq++。p!=L) p=pnext。while(!=xamp。 //調(diào)整pre鏈的結(jié)構(gòu),}//OEReform分析:,必須使用堆棧保存偶數(shù)結(jié)點(diǎn)的指針,否則將會(huì)破壞鏈表結(jié)構(gòu),造成結(jié)點(diǎn)丟失. DuLNode * Locate_DuList(DuLinkedList amp。p=pnext) pnextpre=p。 //按題目要求調(diào)整了next鏈的結(jié)構(gòu),此時(shí)pre鏈仍為原狀for(p=L。p=pnext。p=pnext。} //此時(shí)p指向最后一個(gè)奇數(shù)結(jié)點(diǎn)if(pnext==L) pnext=Lprepre。pnextnext!=L){pnext=pnextnext。while(pnext!=Lamp。}//Delete_XorLinkedList void OEReform(DuLinkedList amp。 //修改指針free(q)。 //q為中間結(jié)點(diǎn)的情況,此時(shí)p,r分別為其左右結(jié)點(diǎn)pLRPtr=XorP(XorP(pLRPtr,q),r)。return OK。=p。}//while //找到待刪結(jié)點(diǎn)qif(!q) return INFEASIBLE。pre=p。amp。q=pLRPtr。return OK。=q。if(i==1) //刪除最左結(jié)點(diǎn)的情況{q=pLRPtr。L,int i)//刪除異或鏈表L的第i個(gè)元素{p=。 //修改指針return OK。qLRPtr=XorP(XorP(qLRPtr,p),r)。}//while //在p,q兩結(jié)點(diǎn)之間插入if(!q) return INFEASIBLE。pre=p。amp。q=pLRPtr。return OK。rLRPtr=p。rdata=x。pre=NULL。 //任何一個(gè)結(jié)點(diǎn)的LRPtr域值與其左結(jié)點(diǎn)指針進(jìn)行異或運(yùn)算即得到其右結(jié)點(diǎn)指針}}//Print_XorLinkedList Status Insert_XorLinkedList(XorLinkedList amp。pre=p。while(p){printf(%d,pdata)。 //完成循環(huán)鏈表}//LinkList_Divide void Print_XorLinkedList(XorLinkedList L)//從左向右輸出異或鏈表的元素值{p=。qnext=B。r=s。q=s。p=s。r=C。q=B。p=A。C)//.{s=Lnext。A,CiList amp。}//DuLNode_Pre Status LinkList_Divide(LinkList amp。p=pnext) pnextpre=p。L)//完成雙向循環(huán)鏈表結(jié)點(diǎn)的pre域{for(p=L。return OK。while(pnextnext!=s) p=pnext。while(qdata=u) q=qnext。 //確定第一個(gè)大于u的元素指針s}//whilernext=s。s=snext。 //確定最后一個(gè)小于u的元素指針rif(rnextdata==u){s=rnext。else{u=pdata。r){if(pdataqdata) p=pnext。qamp。while(pamp。q=Cnext。 }// SqList_Intersect_Delete分析:先從B和C中找出共有元素,記為same,再在A中從當(dāng)前位置開始, 凡小于same的元素均保留(存到新的位置),等于same的就跳過,到大于same時(shí)就再找下一個(gè)same. void LinkList_Intersect_Delete(LinkList amp。 //A的剩余元素重新存儲。==same) i++。 //需保留的元素移動(dòng)到新位置while(iamp。amp。while([k]==same) k++。else{same=[j]。 k) {if([j][k]) j++。jamp。 //i指示A中元素原來的位置,m為移動(dòng)后的位置while(iamp。k=0。A,SqList B,SqList C) {i=0。q=qnext。pcdata=pdata。else if(pdataqdata) q=qnext。amp。pc=A。A,LinkList B)//在鏈表結(jié)構(gòu)上重做上題{p=Anext。 //且C中沒有,就添加到C中}}//whilewhile([k]) [k++]=0。 //當(dāng)發(fā)現(xiàn)了一個(gè)在A,B中都存在的元素i++。else if([j]) j++。amp。k=0。A,SqList B)//求元素遞增排列的線性表A和B的元素的交集并存回A中{i=1。}}//whileC=pc。p=pnext。pcnext=s。else{s=(LNode*)malloc(sizeof(LNode))。q){if(pdataqdata) p=pnext。while(pamp。q=Bnext。 //就添加到C中}}//while}//SqList_
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1