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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)的c語言算法(存儲版)

2025-07-17 06:58上一頁面

下一頁面
  

【正文】 }第四章 串:includeincludedefine MaxLen 20typedef strcut{ char ch[MaxLen]。is1len。 else { for(i=pos1。 if(slen+tlenMaxLen) return 0。}int ins(strtype *s,strtype *t,int i)/*插入一個子串*/{ int j。 slen=slen+tlen。 slen=slenn。 if(i+j1=s1len) { for(n=0。n++,k++) /*連接s1的位置i及之后的字符*/ [n]=s1ch[k]。}void main(){ strtype s,s1,s2,s3,s4,s5,s6。/*s1=**/ s2=subs(amp。s4,6,1,amp。}includeincludeint index(strtype *s1,strtype *s2){ int i=0,j,k。 s1ch[k]==s2ch[j]) { k++。 n=index(s1,s2)。 create(amp。s2)。,39。 while(s[i]amp。)39。k) { hstr[j]=s[i]。 while(s[i]) { rstr[r]=s[i]。 int len。/*建立一個新節(jié)點*/ ghtag=1。 do { disastr(subs,hstr)。 } }while(len0)。amp。!ptag)/*為原子之后繼節(jié)點的情況*/ { printf(%d,p)。}int locate(gnode *p,char x)/*判斷x是否在廣義表中*/{ int find=0。}/*復(fù)制廣義表*/includevoid gcope(gnode *p,gnode *q){ if(p=NULL)。 char str[MaxLen]。 disp(q)。 else if(ptag==1amp。 if(p!=NULLamp。 printf(廣義表g1: )。 printf(\n)。 if(p==NULL) q=NULL。/*產(chǎn)生表尾的逆置廣義表t*/ b=(gnode *)malloc(sizeof(gnode))。/*連接*/ } else/*plink=NULL*/ { q=(gnode *)malloc(sizeof(gnode))。 printf(\n)。 if(p==NULL) q=NULL。 if(p!=NULL) { delall(p,x,t)。/*返回全表*/ } else { delall(plink,x,t)。 printf(廣義表g1:%d,disp(g1))。 printf(廣義表g2:%d\n,disp(g2))。int top=1,k,j=0。:top++。 case 39。 else { switch(k) {case 1:stack[top]left=p。 char type。039。/*根節(jié)點之前輸出(r)*/ } for(i=1。 top。/*輸出空格數(shù)增加width*/ level[top][1]=0。 preorder(bleft)。/*遞歸處理右子樹*/ printf())。/*將左子樹根節(jié)點入棧*/ stack[top]=pleft。i+=2) printf()。r39。/*退棧并凹入顯示該節(jié)點值*/ n=level[top][0]。}}void disptree(BTree *b)/*以凹入表表示法輸出一棵二叉樹*/{ BTree *stack[MaxSize],*p。pleft=pright=NULL。:top。){switch(ch){case 39。/*定義二叉樹類型*/void dispstack(BTree *stack[],int top)。a39。 g1=create(((a,b),a,(d,a)))。 qlink=t。/*返回空表*/ } else { delall(p,x,s)。}/*刪除x項*/includevoid delall(gnode *p,char x,gnode amp。 printf(廣義表g1: )。 while(rlink!=NULL)/*找到第一層的 最后一個節(jié)點*/ r=rlink。 } else/*為表的情況*/ { reverse(p,s)。}/*逆置廣義表*/includevoid reverse(gnode *p,gnode *amp。 printf(廣義表g3: )。 g2=create((a,(b,c,d),e,((f))))。amp。amp。 gcopy(p,q)。 gcopy(plink,qlink)。 else return(locate(plink,x))。 } }while(h)。 } if(pamp。 q=hlink。 ptag=1。 subs[len2]=39。 ghlink=NULL。}gnode *create(char s[])/*從字符串表示創(chuàng)建廣義表*/{ gnode *p,*q,*r,*gh。,39。amp。) k++。則操作后的hstr為操作前的s,而操作后的s為空串*/{ int i=0,j=0,k=0,r=0。}gnode。 delall(amp。 printf(字符串: )。 else return (i+1)。 js2len amp。 disp(amp。s3)。 s1=subs(amp。 =0。 for(n=,k=i+j1。}includeincludestrtype replace(strtype *s1,int i,int j,strtype *s2){ strtype s。islen。jtlen。\039。 } return sub。 strtype sub。}void copy(strtype *s1,strtype *s2)/*串的復(fù)制*/{ int i。不是回文,str)。 printf(輸入一個字符序列:)。 } p=h。 } i++。\039。system(pause)。 dequeue(qu,amp。 enqueue(qu,39。 enqueue(qu,39。 dequeue(qu,amp。 enqueue(qu,39。/*隊列長度減1*/ return 1。 qu[rear]=x。n)。amp。st[top1][0]==3) { n1=st[top][1]。st[top][1]!=0amp。 } else if(st[top][0]==2) { top++。 st[top][1]=0。根據(jù)非遞歸算法,畫出求akm(2,1)時棧的變化過程*/includedefine MaxLen 5000/*此數(shù)應(yīng)足夠大,因為m和n值的較小增長會引起函數(shù)值的極快增長,用的棧的空間也很大*/int f1(int m,int n){ if(m==0) return n+1。str)。 } top。*39。+39。 do { d=10*d+ch39。\039。top。/39。st[top]=ch。)/*判斷為加減號*/ { while(top=0 amp。) { exp[t]=st[top]。 } else if(ch==39。 ch=39。 while ((ch=str[i++])!=39。) { if(ch=39。 if(correct(str)) printf(表達(dá)式括號匹配\n)。st)amp。x)amp。x==39。)) ok=0。 case39。break。)。 for(i=0。i0。 }}int empty(stack *st)/*判斷???/{ if(sttop==0) return 1。 } else { sttop++。 order(e,h)。 printf(\n)。}void order(dlist *h,dlist *e){ dlist *pre=NULL,*pre1,*p=h。/*創(chuàng)建一個節(jié)點*/ sdata=x。 printf(創(chuàng)建一個雙鏈表(以0結(jié)束)\n)。dlist *xor(dlist *p1,dlist *p2)/*在c/c++中異或運算符不能對地址進(jìn)行異或運算,所以先將地址值轉(zhuǎn)換為長整形,然后進(jìn)行異或運算,再將結(jié)果強(qiáng)制轉(zhuǎn)換成地址。 head2=create()。 } if(pa!=NULL) pcnext=pa。 pa=panext。 disp(headc)。 pbnext=q。}/*運行結(jié)果建立一個單鏈表 輸入第1節(jié)點data域值:1輸入第2節(jié)點data域值:2輸入第1節(jié)點data域值:3輸入第1節(jié)點data域值:4輸入第1節(jié)點data域值:5輸入第1節(jié)點data域值:0輸出一個單鏈表1 2 3 4 5 輸出一個單鏈表5 4 3 2 1 *//*設(shè)線性表A=(a1,a2,…,am),B=(b1,b2,…,bn),試寫一個按下列規(guī)則合并A,B為線性表C的算法,即使得C=(a1,b1,…,am,bm,bm+1,…,bm) 當(dāng)m=n時,或者C=(a1,b1,…,an,bn,an+1,…,am) 當(dāng)mn時。 } hnext=NULL。 if(len(h)=1) { printf(逆置的單鏈表至少有2個節(jié)點\n)。}void dispose(nodetype *h)/*釋放單鏈表的所有節(jié)點占有的空間*/{ nodetype *pa=h,*pb。 } else { p=find(h,i1)。/*查找第i個節(jié)點,并由p指向該節(jié)點*/ if(p!=NULL) { snext=pnext。 } return p。 } return i。 if(p==NULL) printf(空表)。 sdata=d。 scanf(%d,amp。/*定義數(shù)據(jù)域的類型*/typedef struct linknode/*定義節(jié)點類型*/{ elemtype data。 int na,nb,nc。 } if(ina)/*A還有元素*/ for(j=i。}/**//*假設(shè)以兩個元素依值遞增有序排列的線性表A和B分別表示兩個集合(即同一表中的元素值各不相同),現(xiàn)要求另開辟空間構(gòu)成一個線性表C,其元素為A和B中元素的交集,*/includeint unions(sqlist A,int na,sqlist B,int nb,sqlist C){ int i=0,j=0,k=0。}void main(){ sqlist A,B,C。 while(i=0amp。A[ni1]=temp。n,i,k)==1) disp(A,n)。 int n,i,k。 if(i0||i+k1*n) { printf(i,k參數(shù)不正確\n)。 switch(n) { case 0:printf(A=B\n)。j==nb) return 1。 if(i==naamp。試寫一個比較A,B大小的算法(請注意:在算法中,不要破壞原表A和B,并且,也不一定先求得A’和B’才能進(jìn)行比較)*/includeint p(sqlist A,int na,sqlist B,int nb){ int i=0,j=0。 n=create(A)。 while(xA[i]) i++。amp。 if(i=0||in) printf(i值下溢或上溢\n)。 if(i0||in) printf(i值下溢或上溢\n)。}void disp(sqlist A,int n)/*輸出一個順序表*/{ int i。 scanf(%d,amp。b,amp。*y=t。 if(*x*y) t=*x。 if(*y*z) t=*y。a,amp。}第二章 線性表1.順序表:includedefine MaxLen 50/*順序表中最多元素個數(shù)*/typedef int elemtype。in。 for(i=0。j) A[j+1]=A[j]
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1