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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)—用c語(yǔ)言描述習(xí)題答案(完整版)

  

【正文】 while(ptdown_colpbcol) {pre=pt。cb=Bnext。 // 重新確定第j列最大值的行號(hào)if (A[i][j]A[i][min[i]]) min[i]=j。 // a是m行n列的二維數(shù)組,本算法求所有馬鞍點(diǎn) { int max[]=0,min[]=0。im。i++) {row[i]=a[i][0]。 kk=0。 min=a[i][j]。 // a是m行n列的二維數(shù)組,本算法求所有馬鞍點(diǎn) // b是一維數(shù)組,存放一行中可能的馬鞍點(diǎn)的列值,k記相等值個(gè)數(shù) // c是一維數(shù)組,存放某列可能馬鞍點(diǎn)的行值,kk記相等值個(gè)數(shù) {for(i=0。 // tp是逆置的工作指針,現(xiàn)在指向待逆置的第一個(gè)字符prenext=sp。amp。}// 算法結(jié)束 linkstring *invert(linkstring *S, linkstring *T)// S和T是用帶頭結(jié)點(diǎn)的結(jié)點(diǎn)大小為1的單鏈表表示的串,S是主串,T是// 模式串。 else i++。 q=Ynext。 q) { ch=pdata。 char search(linkstring *X, linkstring *Y)// X和Y是用帶頭結(jié)點(diǎn)的結(jié)點(diǎn)大小為1的單鏈表表示的串,本算法查找X中 第一個(gè)不在Y中出現(xiàn)的字符。 strcat(strcat(D,C),B)=”myoldmule”(d) (d) n=length(t)。在以下習(xí)題解答中,假定使用如下類型定義:define MAXSIZE 1024typedef struct{ char data[MAXSIZE]。 // 計(jì)算插入元素位置 cqsequ[cqrear]=x。 int queuelength(sequeue *cq) // cq為循環(huán)隊(duì)列,本算法計(jì)算其長(zhǎng)度 { return (cqrear cqfront + m) % m。 // 若隊(duì)列中只一個(gè)元素,置空隊(duì)列else qnextnext=snext。} // 算法結(jié)束 (2) linklist *enqueue(linklist *q,ElemType x)// q是以帶頭結(jié)點(diǎn)的循環(huán)鏈表表示的隊(duì)列的尾指針,本算法將元素x入隊(duì){ s=(linklist *)malloc(sizeof(linklist))。3.6void Ackerman(int m,int n) // Ackerman 函數(shù)的遞歸算法 { if (m==0) return(n+1)。 break。 break。if (i!=0 amp。// 棧滿 else {switch (i) {case 0: sv[++(stop)]=x。} pop(s)。 pdata==pop(s)) p=pnext。也就是說(shuō),若有1,2,3順序入棧,不可能有3,1,2的出棧序列。amp。 if (!p) return (“不存在值為x的結(jié)點(diǎn)”)。 // 恢復(fù)后繼結(jié)點(diǎn)的指針 }//while} // 算法結(jié)束 2 Anext=p。 // 準(zhǔn)備循環(huán)鏈表的頭結(jié)點(diǎn) C=(linklist *)malloc(sizeof(linklist))。2//釋放B表頭結(jié)點(diǎn)} // 算法結(jié)束 // 保留后繼結(jié)點(diǎn)的指針 panext=Cnext。 // 保留后繼結(jié)點(diǎn)的指針 panext=Cnext。{ linklist *pa=Anext,*pb=Bnext,*C=A,*r。} // 算法結(jié)束(2) int length1(node sa[MAXSIZE])// 本算法計(jì)算靜態(tài)鏈表s中元素的個(gè)數(shù)。 p=s。6void invert(linklist *L)// 本算法將帶頭結(jié)點(diǎn)的單鏈表L逆置。 while (p amp。 A[i]=A[n1i]。 }for(i=1。 }} // 算法結(jié)束 算法二 算法思想:先將左面nk個(gè)元素逆置,接著將右面k個(gè)元素逆置,最后再將這n個(gè)元素逆置。 // 計(jì)算下一右移元素的下標(biāo) while (next !=start) { A[empty]=A[next]。 // 插入元素 } // 算法結(jié)束{ int i=0,j。因?yàn)閷?duì)鏈表的所有操均需從頭指針開(kāi)始,即頭指針具有標(biāo)識(shí)鏈表的作用,所以鏈表的名字往往用頭指針來(lái)標(biāo)識(shí)。(3)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)(雙鏈表)typedef struct node{ElemType data。 O(n1/2)(5) (5) 執(zhí)行程序段的過(guò)程中,x,y值變化如下:循環(huán)次數(shù) x y0(初始) 91 1001 92 1002 93 100…… …… ……9 100 10010 101 10011 91 9912 92 100…… …… ……20 101 9921 91 98…… …… ……30 101 9831 91 97 到y(tǒng)=0時(shí),要執(zhí)行10*100次,可記為O(10*y)=O(n) 2100 , (2/3)n , log2n , n1/2 , n3/2 , (3/2)n , nlog2n , 2 n , n! , n n第二章 線性表(參考答案)struct node *prior,*next;}dlinklist。如:鏈表的頭指針是la,往往簡(jiǎn)稱為“鏈表la”。 while (ielenum amp。2// 右移 num++。void rightrotate(ElemType A[],int n,k)// 以向量作存儲(chǔ)結(jié)構(gòu),本算法將向量中的n個(gè)元素循環(huán)右移k位,且只用一個(gè)輔助空間。i=k。 A[n1i]=temp。amp。 //算法思想是先將頭結(jié)點(diǎn)從表上摘下,然后從第一個(gè)元素結(jié)點(diǎn)開(kāi)始,依次前插入以L為頭結(jié)點(diǎn)的鏈表中。 // 將p指向下個(gè)待逆置結(jié)點(diǎn) }} // 算法結(jié)束 { int p=sa[0].next, i=0。// pa,pb為工作指針,分別指向A表和B表的當(dāng)前元素,r為當(dāng)前逆置//元素的后繼指針, 使逆置元素的表避免斷開(kāi)。 // 逆置 Cnext=pa。 // 逆置 Cnext=pa。210void one_to_three(linklist *A,*B,*C)// A是帶頭結(jié)點(diǎn)的的單鏈表,其數(shù)據(jù)元素是字符字母、字符、數(shù)字字符、其他字符。//申請(qǐng)空間,不判斷溢出 Cnext=null。} // 將字母字符插入A表 else if (pdata=’0’amp。11void locate(dlinklist *L)// L是帶頭結(jié)點(diǎn)的按訪問(wèn)頻度遞減的雙向鏈表,本算法先查找數(shù)據(jù)x,// 查找成功時(shí)結(jié)點(diǎn)的訪問(wèn)頻度域增1,最后將該結(jié)點(diǎn)按頻度遞減插入鏈表中適當(dāng)位置。 else { pfreq++。 qfreqpfreq) q=qprior。 void sympthy(linklist *head, stack *s) //判斷長(zhǎng)為n的字符串是否中心對(duì)稱 { int i=1。 if (p==null) printf(“鏈表中心對(duì)稱”); else printf(“鏈表不是中心對(duì)稱”); } // 算法結(jié)束 int match()//從鍵盤讀入算術(shù)表達(dá)式,本算法判斷圓括號(hào)是否正確配對(duì)(init s。 }if (!empty(s)) printf(“括號(hào)不配對(duì)”)。 break。amp。 default: printf(“棧編號(hào)輸入錯(cuò)誤”)。 case 1: if(stop[1]==m) return(0)。 else if (m!=0 amp。//申請(qǐng)空間,不判斷空間溢出snext=qnext。// 修改隊(duì)頭元素指針 free (s)。} // 算法結(jié)束 // 將元素x入隊(duì)列 cqquelen++。int curlen。 i=1。 strlen(D)=2(h) (h) delete(B,2,0)=”mule”(n) (n)算法思想是先從X中取出一個(gè)字符,到Y(jié)中去查找,如找到,則在X中取下一字符,重復(fù)以上過(guò)程;若沒(méi)找到,則該字符為所求 // 取X中的字符 while (q amp。 // 再?gòu)腨的第一個(gè)字符開(kāi)始比較 }}return(null)。 // 比較下一字符 if (sch[i]!=’\0’amp。本算法是先模式匹配,查找T在S中的第一次出現(xiàn)。 tp)if (spdata==tpdata) // 相等時(shí)后移指針 {sp=spnext。 // 將S中與T串匹配時(shí)的前驅(qū)指向匹配后的后繼 while (tp!=sp) { r=tpnext。im。k=1。 // a[i][j]是否是馬鞍點(diǎn) while (kkm amp。 // 最小值初始化 for (j=1。i++) // 找每一列中的最大值 if (a[i][j]col[j]) col[j]=a[i][j]。for(i=0。 // 重新確定第i行最小值的列號(hào) } for (i=0。 while(ca!=Aamp。pt=ptdown。//該結(jié)點(diǎn)從B表相應(yīng)行鏈表中摘下。ptdownrowptbrow) {pre=pt。ptrightcolptbcol) {pre=pt。 } else{將pa,pb從鏈表中刪除。 return(blbr? bl+1: br+1)。// 先序訪問(wèn)左子樹(shù) } if (top0) i=s[top]。 preorder(bt,n,2*i+1)。amp。 (前序非遞歸遍歷){ bitree *s[n+1]。top=0。stack s[n+1] 。}if (top) { s[top].tag=1。 // 在左子樹(shù)中查找并拆開(kāi) // 若在左子樹(shù)中未找到,就到右子樹(shù)中查找并拆開(kāi) if (!find) find=(dissect(amp。 int top=0。 } if (tdata==x) // {for (i=1。t=s[top].p。 哈夫曼編碼:a:0010b:10c:00000d:0001e:01f:00001g:11h:0011第七章圖(參考答案)7.1(1)鄰接矩陣中非零元素的個(gè)數(shù)的一半為無(wú)向圖的邊數(shù);(2)A[i][j]= =0為頂點(diǎn),I 和j無(wú)邊,否則j和j有邊相通;(3)任一頂點(diǎn)I的度是第I行非0元素的個(gè)數(shù)。exit(0)。 scanf (amp。{ y=delqueue(q)。算法基本思想是利用圖的遍歷,以頂點(diǎn)VK開(kāi)始,若遍歷中再通到VK,則存在簡(jiǎn)單回路,否則不存在簡(jiǎn)單回路。exit(0)。{ visited[1..n]=0。 num++。}//輸出頂點(diǎn) }printf(“\n”)。num=0。 p=pnextarc。 visited[1..n]=0。exit(0)。j)。//找x的第一鄰接點(diǎn) while (p!=null) { k=padjvex。(3) 0 1 ∞ 1∞ 0 1 ∞1 ∞ 0 ∞∞ ∞ 1 0鄰接矩陣V1V4 ||\V2 | ^|\V2V3 |^|\V1 | ^|\V3V4V3 |^|\鄰接表V1V3 |^|\V2V1 |^|\V2 | ^|\V4 | ^|\V3V4V1 |^|\逆鄰接表
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1