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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課后習(xí)題答案(參考版)

2025-06-26 20:47本頁面
  

【正文】 }if(a[i]) return FALSE。 a[i]){Push(s,a[i])。 amp。amp。ElemType x。Stack s。31’則不是。例如,‘a(chǎn)+bamp。其中序列1和序列2中都不含字符‘a(chǎn)mp。} 試寫一個(gè)算法,識(shí)別一次讀入的一個(gè)以為結(jié)束符的字符序列是否為形如‘序列1amp。}coutBufferendl。}while(Buffer[j]){Pop(s,Buffer[j])。}else Push(s,Buffer[i])。){Buffer[j]=Buffer[i]。while(Buffer[i]){if(Buffer[i]==39。cinBuffer。InitStack(s)。char Buffer[80]。} (分別以H和S表示)等待調(diào)度,試編寫算法,輸出對(duì)這n節(jié)車廂進(jìn)行調(diào)度的操作(即入?;虺鰲2僮鳎┬蛄?,以使所有的軟席車廂都被調(diào)整到硬席車廂之前。p=。}return OK。delete p。p=。e){LinkType p。}Status Pop(Stack amp。++。=p。if(!p) exit(OVERFLOW)。s,ElemType e){LinkType p。return OK。e){if(!) return ERROR。else return FALSE。}}int StackLength(Stack s){return 。delete p。while(){p=。}}void ClearStack(Stack amp。delete p。while(){p=。}void DestroyStack(Stack amp。s){=NULL。}Stack。typedef struct{LinkType top。NodeType *next。}}。else cerrStack empty!。else cerrStack empty!。}}ElemType Pop(int i){di=i。}else{if(top[1]p+stacksize1) *++top[1]=x。if(di==0){if(top[0]=p) *top[0]=x。}~DStack(){delete p。top[1]=top[0]。if(!p) exit(OVERFLOW)。int di。ElemType *p。試編寫實(shí)現(xiàn)這個(gè)雙向棧tws的三個(gè)操作:初始化inistack(tws)、入棧push(tws,i,x)和出棧pop(tws,i)的算法,其中i為0或1,用以分別指示設(shè)在數(shù)組兩端的兩個(gè)棧,并討論按過程(正/誤狀態(tài)變量可設(shè)為變參)或函數(shù)設(shè)計(jì)這些操作算法各有什么有缺點(diǎn)。(3) 既不能由輸入受限的雙端隊(duì)列得到,也不能由輸出受限的雙端隊(duì)列得到的輸出序列。}}解:隊(duì)列逆置 若以1234作為雙端隊(duì)列的輸入序列,試分別求出滿足以下條件的輸出序列:(1) 能由輸入受限的雙端隊(duì)列得到,但不能由輸出受限的雙端隊(duì)列得到的輸出序列。}while(!StackEmpty(S)){Pop(S, d)。while(!QueueEmpty(Q)){DeQueue(Q, d)。int d。void algo3(Queue amp。}coutx。While(!QueueEmpty(Q)){DeQueue(Q,y)。DeQueue(Q, x)。DeQueue(Q, x)。EnQueue(Q, ‘r’)。char x= ‘e’, y= ‘c’。void main(){Queue Q。隊(duì)列也是一種運(yùn)算受限的線性表,其限制是僅允許在表的一端進(jìn)行插入,而在表的另一端進(jìn)行刪除。} 簡(jiǎn)述隊(duì)列和堆棧這兩種數(shù)據(jù)類型的相同點(diǎn)和差異處。coutsumendl。while(!StackEmpty(s)){Pop(s,x)。Push(s,x)。int x。sum){Stack s。}coutsum。else{test(sum)。cinx。void test(int amp。}return。}解:void ditui(int j){if(j1){coutj。i = n。解:【】 試將下列遞推過程改寫為遞歸過程。所以不可能存在著ijk使。解:。由于T1的輸出為……ba……,而T2的輸出順序?yàn)椤璦b……,說明兩個(gè)不同的合法棧操作序列的輸出元素的序列一定不同。第n+1個(gè)操作不同,不妨T1的第n+1個(gè)操作為S,T2的第n+1個(gè)操作為X。設(shè)兩個(gè)合法序列為:T1=S……X……S……T2=S……X……X……假定前n個(gè)操作都相同,從第n+1個(gè)操作開始,為序列不同的起始操作點(diǎn)。試給出區(qū)分給定序列為合法序列或非法序列的一般準(zhǔn)則,并證明:兩個(gè)不同的合法(棧操作)序列(對(duì)同一輸入序列)不可能得到相同的輸出元素(注意:在此指的是元素實(shí)體,而不是值)序列。}}解:(1) 棧中的數(shù)據(jù)元素逆置 (2) 如果棧中存在元素e,將其從棧中清除 假設(shè)以S和X分別表示入棧和出棧的操作,則初態(tài)和終態(tài)均為空棧的入棧和出棧的操作序列可以表示為僅由S和X組成的序列。}while(!StackEmpty(T)){Pop(T,d)。while(!StackEmpty(S)){Pop(S,d)。 int d。i++) Push(S,A[i])。 }for(i=1。while(!StackEmpty(S)) { n++。(1) status algo1(Stack S){int i,n,A[255]。 }printf(x)。while(!StackEmpty(S)) { Pop(S,y)。Pop(S,x)。 Push(S, ‘t’)。 Push(S,y)。Push(S,x)。x= ‘c’。char x,y?!尽?寫出下列程序段的輸出結(jié)果(棧的元素類型SElemType為char)。解:線性表是具有相同特性的數(shù)據(jù)元素的一個(gè)有限序列。因?yàn)?356出站說明12已經(jīng)在棧中,1不可能先于2出棧。}第3章 棧和隊(duì)列【】 (b)所示鐵道進(jìn)行車廂調(diào)度(注意:兩側(cè)鐵道均為單向行駛道),則請(qǐng)回答:(1) 如果進(jìn)站的車廂序列為123,則可能得到的出站車廂序列是什么?(2) 如果進(jìn)站的車廂序列為123456,則能否得到435612和135426的出站序列,并請(qǐng)說明為什么不能得到或者如何得到(即寫出以 ‘S’表示進(jìn)棧和以 ‘X’表示出棧的棧操作序列)。p=pnext。p1=p1next。ptnext=p1next。p=pnext。p1=L1。q=L。L,LinkedPoly amp。} 試編寫算法,將一個(gè)用循環(huán)鏈表表示的稀疏多項(xiàng)式分解成兩個(gè)多項(xiàng)式,使這兩個(gè)多項(xiàng)式中各自僅含奇次項(xiàng)或偶次項(xiàng),并要求利用原鏈表中的結(jié)點(diǎn)空間構(gòu)成這兩個(gè)鏈表。p=pnext。p。free(pt)。p=pnext。p=Lnext。L){LinkedPoly p,q,pt。 試以循環(huán)鏈表作稀疏多項(xiàng)式的存儲(chǔ)結(jié)構(gòu),編寫求其導(dǎo)函數(shù)的方法,要求利用原多項(xiàng)式中的結(jié)點(diǎn)空間存放其導(dǎo)函數(shù)多項(xiàng)式,同時(shí)釋放所有無用結(jié)點(diǎn)。} PolyNode, *PolyLink。},稀疏多項(xiàng)式采用的循環(huán)鏈表存儲(chǔ)結(jié)構(gòu)LinkedPoly定義為typedef struct PolyNode {PolyTerm data。}=k。p2++。p++。}if(j)while(j){pcoef=p2coef。p1++。p++。}}if(i)while(i){pcoef=p1coef。i++。}p1++。p++。}else{if(p1coef!=p2coef){pcoef=(p1coef)(p2coef)。p2++。p++。}elseif(p1expp2exp){pcoef=p2coef。p1++。p++。j){if(p1expp2exp){pcoef=p1coef。while(iamp。p2=。p=。L1,SqPoly amp。解:// 求兩多項(xiàng)式的差Status PolyMinus(SqPoly amp。}return Pn。j++) x=x*x0。i++,p++){for(j=0,x=1。for(i=0,Pn=0。PolyTerm *p。L,double x0){double Pn,x。}return OK。cinpexp。cinpcoef。i。p=。=(PolyTerm *)malloc(*sizeof(PolyTerm))。cout請(qǐng)輸入多項(xiàng)式的項(xiàng)數(shù):。L){int i。} SqPoly。typedef struct{PolyTerm *data。int exp。試采用存儲(chǔ)量同多項(xiàng)式項(xiàng)數(shù)m成正比的順序存儲(chǔ)結(jié)構(gòu),編寫求的算法(為給定值),并分析你的算法的時(shí)間復(fù)雜度。} SqPoly。typedef struct { //多項(xiàng)式的順序存儲(chǔ)結(jié)構(gòu)PolyTerm *data。int exp。}return p。ppre=qpre。}else{// 在q之前插入pnext=qprenext。ppre=qpre。if(q==L){pnext=qnext。amp。// 插入到合適的位置q=Lnext。// 刪除結(jié)點(diǎn)pprenext=pnext。if(p==L) return NULL。amp。p=Lnext。解:DuLinkList ListLocate_DuL(DuLinkList amp。在鏈表被起用之前,頻度域freq的值均初始化為零,而每當(dāng)對(duì)鏈表進(jìn)行一次Locate(L,x)的操作后,被訪問的結(jié)點(diǎn)(即元素值等于x的結(jié)點(diǎn))中的頻度域freq的值便增1,同時(shí)調(diào)整鏈表中結(jié)點(diǎn)之間的次序,使其按訪問頻度非遞增的次序順序排列,以便始終保持被頻繁訪問的結(jié)點(diǎn)總是靠近表頭結(jié)點(diǎn)。}return OK。}else p=pnext。qnext=rnext。// 插入到頭結(jié)點(diǎn)的左面qpre=rnextpre。// 刪除結(jié)點(diǎn)qprenext=qnext。while(p!=r){if(i%2==0){q=p。r=Lpre。DuLinkList p,q,r。解:// 將雙向鏈表L=(a1,a2,...,an)改造為(a1,a3,...,an,...,a2)Status ListChange_DuL(DuLinkList amp。 設(shè)以帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表表示的線性表。} ,寫出在第i個(gè)結(jié)點(diǎn)之前插入一個(gè)結(jié)點(diǎn)的算法。}}else return ERROR。right=p。right=NULL。R39。r39。p=XorP(left,pLRPtr)。while(p!=NULL){VisitingData(pdata)。){p=。||d==39。if(d==39。解:Status TraversingLinkList(XorLinkedList amp。則可實(shí)現(xiàn)從左向右或從右向左遍歷此雙向鏈表的操作。// 指針異或函數(shù)XorP返回指針p和q的異或值 假設(shè)在算法描述語言中引入指針的二元運(yùn)算“異或”,若a和b為指針,則a⊕b的運(yùn)算結(jié)果仍為原指針類型,且a⊕(a⊕b)=(a⊕a)⊕b=b(a⊕b)⊕b=a⊕(b⊕b)=a則可利用一個(gè)指針域來實(shí)現(xiàn)雙向鏈表L。 //分別指向鏈表的左側(cè)和右端} XorLinkedList。} XorNode, *XorPointer。},“異或指針雙向鏈表”類型XorLinkedList和指針異或函數(shù)XorP定義為:typedef struct XorNode {char data。free(q)。pt3=pt3next。qnext=pt3next。}else{q=p。pt2next=q。p=pnext。z39。amp。a39。Z39。amp。A39。pt1=pt1next。qnext=pt1next。){q=p。 pdata=39。 amp。while(p){if(pdata=39。pt2=s2。p=Lnext。s2,LinkList amp。L,LinkList amp。} 已知由一個(gè)線性鏈表表示的線性表中含有三類字符的數(shù)據(jù)元素(如:字母字符、數(shù)字字符和其他字符),試編寫算法將該線性表分割為三個(gè)循環(huán)鏈表,其中每個(gè)循環(huán)鏈表表示的線性表中均只含一類字符。}if(p==L) ppre=q。q=p。p=Lnext。L){DuLinkList p,q。return OK。pnext=Lnext。if(!p) return ERROR。L,ElemType e){DuLinkList p。return OK。Lpre=NULL。L){L=(DuLinkList)malloc(sizeof(DuLNode))。} 已知有一個(gè)單向循環(huán)鏈表,其每個(gè)結(jié)點(diǎn)中含三個(gè)域:pre,data和next,
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1