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

正文內(nèi)容

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

2025-07-30 21:29上一頁面

下一頁面
  

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