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

正文內(nèi)容

1嚴蔚敏版數(shù)據(jù)結(jié)構(gòu)習題集及參考答案(完整版)

2024-07-27 18:39上一頁面

下一頁面
  

【正文】 free(pb)。 pa=panext。 pa=panext。 // 保存pa的前驅(qū)指針 qb=pb。} 假設(shè)有兩個按元素值遞增有序排列的線性表A和B,均以單鏈表作存儲結(jié)構(gòu),請編寫算法將A表和B表歸并成一個按元素值遞減有序(即非遞增有序,允許表中含有值相同的元素)排列的線性表C,并要求利用原表(即A表和B表)的結(jié)點空間構(gòu)造C表。 pa=panext。C){ LinkList pa,pb,qa,qb。 Lnext=q。解:// 帶頭結(jié)點的單鏈表的逆置Status ListOppose_L(LinkList amp。 ElemType x。amp。解:void ListDelete_LSameNode(LinkList amp。pdatamaxk){ if(pdata=mink){ prev=p。解:Status ListDelete_L(LinkList amp。 } if(!s)return INFEASIBLE。 // 將從la中刪除的結(jié)點插入到lb中 if(j=1){ qnext=lb。 k=1。 // 在la表中查找第i個結(jié)點 p=la。 } snext=p。 k++。 panext=hbnext。amp。請分析你的算法的時間復雜度。L){ int i=0。 while(pamp。 } if(k) j=1。解:Status CompareOrderList(SqList amp。i0,x[i1]。 =。 。 指出以下算法中的錯誤和低效之處,并將它改寫為一個既正確又高效的算法。 } return OK。(1) Status A(LinkedList L) { //L是無表頭結(jié)點的單鏈表 if(L amp。(12) Pnextpriou=S。(4) Ppriou=S。a. 在P結(jié)點后插入S結(jié)點的語句序列是_______________________。(8) while(Pnextnext!=Q) P=Pnext。(1) P=Pnext。(12) L=S。(4) Snext=Pnext。解: 已知L是無表頭結(jié)點的單鏈表,且P結(jié)點既不是首元結(jié)點,也不是尾元結(jié)點,試從下列提供的答案中選擇合適的語句序列。 Pdata=i*21。 對以下單鏈表分別執(zhí)行下列各程序段,并畫出結(jié)果示意圖。它可以對空表、非空表以及首元結(jié)點的操作進行統(tǒng)一處理。 return 0。 cout輸入多項式的階次n:。注意選擇你認為較好的輸入和輸出方法。 else{ if(2*i*a[i1]MAXINT) exit(0)。int main(){ int i,k。i++){ if(a[i].school==sn){ if(a[i].sex==Male) +=a[i].score。 //團體總分} Sum。typedef struct{ char event[3]。 for(j=0。 int i,j。 else return z。 }解:count= 已知有實現(xiàn)同一功能的兩個算法,其時間復雜度分別為和,假設(shè)現(xiàn)實計算機可連續(xù)運算的時間為秒(100多天),又每秒可執(zhí)行基本操作(根據(jù)這些操作來估算算法時間復雜度)次。 y。 while(i+j=n) { if(ij) j++。 i=n。 k += 10*i。 }(2) i=1。解:(1)用scanf和printf直接進行輸入輸出的好處是形象、直觀,但缺點是需要對其進行格式控制,較為煩瑣,如果出現(xiàn)錯誤,則會引起整個系統(tǒng)的崩潰。 default: z=(xy)/abs(x)*abs(y)。 do { i++。R,k,e) 操作結(jié)果:改變有理數(shù)R的第k元的值為e IsAscending(R) 操作結(jié)果:若有理數(shù)R的兩個元素按升序排列,則返回1,否則返回0 IsDescending(R) 操作結(jié)果:若有理數(shù)R的兩個元素按降序排列,則返回1,否則返回0 Max(R,amp。C)操作結(jié)果:銷毀復數(shù)C Get(C,k,amp。解:抽象數(shù)據(jù)類型包含一般數(shù)據(jù)類型的概念,但含義比一般數(shù)據(jù)類型更廣、更抽象。 數(shù)據(jù)元素是數(shù)據(jù)的基本單位,在計算機程序中通常作為一個整體進行考慮和處理。 數(shù)據(jù)對象是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。一般數(shù)據(jù)類型由具體語言系統(tǒng)內(nèi)部定義,直接提供給編程者定義用戶數(shù)據(jù),因此稱它們?yōu)轭A定義數(shù)據(jù)類型。e) 操作結(jié)果:用e返回復數(shù)C的第k元的值 Put(amp。e) 操作結(jié)果:用e返回有理數(shù)R的兩個元素中值較大的一個 Min(R,amp。 } while((i!=n) amp。 } 在程序設(shè)計中,常用下列三種不同的出錯處理方式:(1) 用exit語句終止執(zhí)行并報告錯誤;(2) 以函數(shù)的返回值區(qū)別正確返回或錯誤返回;(3) 設(shè)置一個整型變量的函數(shù)參數(shù)以區(qū)別正確返回或某種錯誤返回。 (2)通過函數(shù)的參數(shù)傳遞進行輸入輸出,便于實現(xiàn)信息的隱蔽,減少出錯的可能。 k=0。 }(4) k=0。 i++) { for(j=1。 else i++。 } else x++。試問在此條件下,這兩個算法可解問題的規(guī)模(即n值的范圍)各為多少?哪個算法更適宜?請說明理由。 else if(yz) return y。 for(i=0。jk。 //項目 SexType sex。Sum SumScore(SchoolName sn,Component a[],int n){ Sum temp。 if(a[i].sex==Female) +=a[i].score。 int a[ArrSize]。 else a[i]=2*i*a[i1]。本題的輸入為,和,輸出為。 cinn。}double polynomail(int a[],int i,double x,int n){ if(i0) return a[ni]+polynomail(a,i1,x,n)*x。 填空題。解: 畫出執(zhí)行下列各行語句后各指針及鏈表的示意圖。 } Pnext=NULL。a. 在P結(jié)點后插入S結(jié)點的語句序列是__________________。(5) Snext=L。(13) L=P。(2) Pnext=P。(9) while(Pnextnext!=NULL) P=Pnext。b. 在P結(jié)點前插入S結(jié)點的語句序列是_______________________。(5) Snext=P。(13) Ppriounext=S。amp。 }(2) void BB(LNode *s, LNode *q) { p=s。Status DeleteK(SqList amp。 } return OK。 return OK。i) [i]=[i1]。A,SqList amp。 if(k) j=1。amp。 LinkList p=L。解:void MergeList_L(LinkList amp。pbnext){ pa=panext。 }} 已知指針la和lb分別指向兩個無頭結(jié)點單鏈表中的首元結(jié)點。 } q=p。 qnext=snext。 while(pamp。 while(qamp。 lb=p。 qnext=snext。L,ElemType mink,ElemType maxk){ LinkList p,q,prev=NULL。 p=pnext。L){ LinkList p,q,prev。pdata==prevdata){ prevnext=pnext。 for(i=0。L){ LinkList p,q。 } return OK。 pa=Anext。 pb=pbnext。解:// 將合并逆置后的結(jié)果放在C表中,并刪除B表Status ListMergeOppose_L(LinkList amp。 // 保存pb的前驅(qū)指針 pa=panext。 qanext=Anext。 qanext=Anext。 return OK。amp。試對單鏈表編寫求C的算法。 // 保存pa的前驅(qū)指針 qb=pb。 qanext=pa。 } } while(pa){ pt=pa。 } pb=B。C){ int i=0,j=0,k=0。 k++。 j){ if([i][j]) i++。 return OK。 pb=B。pb){ if(padatapbdata){ pt=pa。 } else{ if(padata==qadata){ pt=pa。 qanext=pa。 return OK。 // 保存pb的前驅(qū)指針 pa=panext。 } else if(padatapbdata){ pt=pb。 } else{ qa=pa。 qbnext=pb。D,SqList amp。試對單鏈表編寫算法,請釋放A表中的無用結(jié)點空間。B){ LinkList pa,pb,qa,qb,pt。amp。 pa=panext。 free(pb)。 p=Snext。L){ L=(DuLinkList)malloc(sizeof(DuLNode))。 if(!p) return ERROR。 p=Lnext。L,LinkList amp。 while(p){ if(pdata=39。 qnext=pt1next。Z39。 p=pnext。 pt3=pt3next。 //分別指向鏈表的左側(cè)和右端} XorLinkedList。 if(d==39。 p=XorP(left,pLRPtr)。 right=p。解:// 將雙向鏈表L=(a1,a2,...,an)改造為(a1,a3,...,an,...,a2)Status ListChange_DuL(DuLinkList amp。 // 刪除結(jié)點 qprenext=qnext。 } return OK。amp。amp。 ppre=qpre。} SqPoly。} SqPoly。 p=。 } return OK。i++,p++){ for(j=0,x=1。L1,SqPoly amp。j){ if(p1expp2exp){ pcoef=p1coef。 p++。 } p1++。 p1++。 } =k。L){ LinkedPoly p,q,pt。 p。 q=L。 p1=p1next。解:線性表是具有相同特性的數(shù)據(jù)元素的一個有限序列。 Push(S,x)。 while(!StackEmpty(S)) { Pop(S,y)。 } for(i=1。 } while(!StackEmpty(T)){ Pop(T,d)。第n+1個操作不同,不妨T1的第n+1個操作為S,T2的第n+1個操作為X。解: 試將下列遞推過程改寫為遞歸過程。 void test(int amp。sum){ Stack s。 coutsumendl。 char x= ‘e’, y= ‘c’。 While(!QueueEmpty(Q)) { DeQueue(Q,y)。 while(!QueueEmpty(Q)) { DeQueue(Q, d)。 } while(!StackEmpty(S)) { Pop(S, d)。 } coutx。 EnQueue(Q, ‘r’)。} 簡述隊列和堆棧這兩種數(shù)據(jù)類型的相同點和差異處。 int x。 cinx。 i = n。由于T1的輸出為……ba……,而T2的輸出順序為……ab……,說明兩個不同的合法棧操作序列的輸出元素的序列一定不同。 } }解:(1) 棧中的數(shù)據(jù)元素逆置 (2) 如果棧中存在元素e,將其從棧中清除 假設(shè)以S和X分別表示入棧和出棧的操作,則初態(tài)和終態(tài)均為空棧的入棧和出棧的操作序列可以表示為僅由S和X組成的序列。i++) Push(S,A[i])。 } printf(x)。 Push(S,y)。 寫出下列程序段的輸出結(jié)果(棧的元素類型SElemType為char)。 p=pnext。 p1=L1。 p=pnext。 p=Lnext。},稀疏多項式采用的循環(huán)鏈表存儲結(jié)構(gòu)LinkedPoly定義為typedef struct PolyNode { PolyTerm data。
點擊復制文檔內(nèi)容
數(shù)學相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1