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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課后習(xí)題答案詳解(c語言版嚴(yán)蔚敏)2-資料下載頁

2025-06-22 21:25本頁面
  

【正文】 Stack overflow!。 } else{ if(top[1]p+stacksize1) *++top[1]=x。 else cerrStack overflow!。 } } ElemType Pop(int i) { di=i。 if(di==0){ if(top[0]top[1]) return *++top[0]。 else cerrStack empty!。 }else{ if(top[1]top[0]) return *top[1]。 else cerrStack empty!。 } return OK。 }}。// 鏈棧的數(shù)據(jù)結(jié)構(gòu)及方法的定義typedef struct NodeType{ ElemType data。 NodeType *next。}NodeType,*LinkType。typedef struct{ LinkType top。 int size。}Stack。void InitStack(Stack amp。s){ =NULL。 =0。}void DestroyStack(Stack amp。s){ LinkType p。 while(){ p=。 =pnext。 delete p。 。 }}void ClearStack(Stack amp。s){ LinkType p。 while(){ p=。 =pnext。 delete p。 。 }}int StackLength(Stack s){ return 。}Status StackEmpty(Stack s){ if(==0) return TRUE。 else return FALSE。}Status GetTop(Stack s,ElemType amp。e){ if(!) return ERROR。 else{ e=data。 return OK。 }}Status Push(Stack amp。s,ElemType e){ LinkType p。 p=new NodeType。 if(!p) exit(OVERFLOW)。 pnext=。 =p。 pdata=e。 ++。 return OK。}Status Pop(Stack amp。s,ElemType amp。e){ LinkType p。 if(){ e=data。 p=。 =pnext。 delete p。 。 } return OK。}// 從棧頂?shù)綏5子肰isit()函數(shù)遍歷棧中每個(gè)數(shù)據(jù)元素void StackTraverse(Stack s,Status (*Visit)(ElemType e)){ LinkType p。 p=。 while(p) Visit(pdata)。} (分別以H和S表示)等待調(diào)度,試編寫算法,輸出對(duì)這n節(jié)車廂進(jìn)行調(diào)度的操作(即入?;虺鰲2僮鳎┬蛄?,以使所有的軟席車廂都被調(diào)整到硬席車廂之前。解:int main(){ Stack s。 char Buffer[80]。 int i=0,j=0。 InitStack(s)。 cout請(qǐng)輸入硬席(H)和軟席車廂(S)序列:。 cinBuffer。 coutBufferendl。 while(Buffer[i]){ if(Buffer[i]==39。S39。){ Buffer[j]=Buffer[i]。 j++。 } else Push(s,Buffer[i])。 i++。 } while(Buffer[j]){ Pop(s,Buffer[j])。 j++。 } coutBufferendl。 return 0。} 試寫一個(gè)算法,識(shí)別一次讀入的一個(gè)以@為結(jié)束符的字符序列是否為形如‘序列1amp。序列2’模式的字符序列。其中序列1和序列2中都不含字符‘a(chǎn)mp?!倚蛄?是序列1的逆序列。例如,‘a(chǎn)+bamp。b+a’是屬該模式的字符序列,而‘1+3amp。31’則不是。解:BOOL Symmetry(char a[]){ int i=0。 Stack s。 InitStack(s)。 ElemType x。 while(a[i]!=39。amp。39。 amp。amp。 a[i]){ Push(s,a[i])。 i++。 } if(a[i]) return FALSE。 i++。 while(a[i]){ Pop(s,x)。 if(x!=a[i]){ DestroyStack(s)。 return FALSE。 } i++。 } return TRUE。} 試寫一個(gè)判別表達(dá)式中開、閉括號(hào)是否配對(duì)出現(xiàn)的算法。解:BOOL BracketCorrespondency(char a[]){ int i=0。 Stack s。 InitStack(s)。 ElemType x。 while(a[i]){ switch(a[i]){ case 39。(39。: Push(s,a[i])。 break。 case 39。[39。: Push(s,a[i])。 break。 case 39。)39。: GetTop(s,x)。 if(x==39。(39。) Pop(s,x)。 else return FALSE。 break。 case 39。]39。: GetTop(s,x)。 if(x==39。[39。) Pop(s,x)。 else return FALSE。 break。 default: break。 } i++。 } if(!=0) return FALSE。 return TRUE。} 假設(shè)以二維數(shù)組g(1…m, 1…n)表示一個(gè)圖像區(qū)域,g[i,j]表示該區(qū)域中點(diǎn)(i,j)所具顏色,其值為從0到k的整數(shù)。編寫算法置換點(diǎn)(i0,j0)所在區(qū)域的顏色。約定和(i0,j0)同色的上、下、左、右的鄰接點(diǎn)為同色區(qū)域的點(diǎn)。解:include include typedef struct{ int x。 int y。}PosType。typedef struct{ int Color。 int Visited。 PosType seat。}ElemType。include d:\VC99\define M 8define N 8ElemType g[M][N]。void CreateGDS(ElemType g[M][N])。void ShowGraphArray(ElemType g[M][N])。void RegionFilling(ElemType g[M][N],PosType CurPos,int NewColor)。int main(){ CreateGDS(g)。 ShowGraphArray(g)。 PosType StartPos。 =5。 =5。 int FillColor=6。 RegionFilling(g,StartPos,FillColor)。 coutendl。 ShowGraphArray(g)。 return 0。}void RegionFilling(ElemType g[M][N],PosType CurPos,int FillColor){ Stack s。 InitStack(s)。 ElemType e。 int OldColor=g[][].Color。 Push(s,g[][])。 while(!StackEmpty(s)){ Pop(s,e)。 CurPos=。 g[][].Color=FillColor。 g[][].Visited=1。 if(M amp。amp。 !g[+1][].Visited amp。amp。 g[+1][].Color==OldColor ) Push(s,g[+1][])。 if(0 amp。amp。 !g[][].Visited amp。amp。 g[][].Color==OldColor ) Push(s,g[][])。 if(N amp。amp。 !g[][+1].Visited amp。amp。 g[][+1].Color==OldColor ) Push(s,g[][+1])。 if(0 amp。amp。 !g[][].Visited amp。amp。 g[][].Color==OldColor ) Push(s,g[][])。 }}void CreateGDS(ElemType g[M][N]){ int i,j。 for(i=0。iM。i++) for(j=0。jN。j++){ g[i][j].=i。 g[i][j].=j。 g[i][j].Visited=0。 g[i][j].Color=0。 } for(i=2。i5。i++) for(j=2。j4。j++) g[i][j].Color=3。 for(i=5。iM1。i++) for(j=3。j6。j++) g[i][j].Color=3。}void ShowGraphArray(ElemType g[M][N]){ int i,j。 for(i=0。iM。i++){ for(j=0。jN。j++) coutg[i][j].Color。 coutendl。 }} 假設(shè)表達(dá)式有單字母變量和雙目四則運(yùn)算符構(gòu)成。試寫一個(gè)算法,將一個(gè)通常書寫形式且書寫正確的表達(dá)式轉(zhuǎn)換為逆波蘭表達(dá)式。解:// 輸入的表達(dá)式串必須為...格式void InversePolandExpression(char Buffer[]){ Stack s。 InitStack(s)。 int i=0,j=0。 ElemType e。 Push(s,Buffer[i])。 i++。 while(Buffer[i]!=39。39。){ if(!IsOperator(Buffer[i])){ // 是操作數(shù) Buffer[j]=Buffer[i]。 i++。 j++。 } else{ // 是操作符 GetTop(s,e)。 if(Prior(e,Buffer[i])){// 當(dāng)棧頂優(yōu)先權(quán)高于當(dāng)前序列時(shí),退棧 Pop(s,e)。 Buffer[j]=e。 j++。 } else{ Push(s,Buffer[i])。 i++。 } } } while(!StackEmpty(s)){ Pop(s,e)。 Buffer[j]=e。 j++。 }}Status IsOpertor(char c){ char *p=+*/。 while(*p){ if(*p==c) return TRUE。 p++。 } return FALSE。}Status Prior(char c1,char c2){ char ch[]=+*/。 int i=0,j=0。 while(ch[i] amp。amp。 ch[i]!=c1) i++。 if(i==2) i。 // 加和減可認(rèn)為是同級(jí)別的運(yùn)算符 if(i==4) i。 // 乘和除可認(rèn)為是同級(jí)別的運(yùn)算符 while(ch[j] amp。amp。 ch[j]!=c2) j++。 if(j==2) j。 if(j==4) j。 if(i=j) return TRUE。 else return FALSE。} ,試寫一個(gè)算法,對(duì)以逆波蘭式表示的表達(dá)式求值。解:char CalVal_InverPoland(char Buffer[]){ Stack Opnd。 InitStack(Opnd)。 int i=0。 char c。 ElemType e1,e2。 while(Buffer[i]!=39。39。){ if(!IsOperator(Buffer[i])){ Push(Opnd,Buffer[i])。 } else{ Pop(Opnd,e2)。 Pop(Opnd,e1)。 c=Cal(e1,Buffer[i],e2)。 Push(Opnd,c)。 } i++。 } return c。}char Cal(char c1,char op,char c2){ int x,x1,x2。 char ch[10]。 ch[
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1