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

正文內(nèi)容

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

2025-06-20 06:58本頁面
  

【正文】 }}BTree *find(BTree *b,。 preorder(bleft)。/*遞歸處理右子樹*/ printf())。/*遞歸處理左子樹*/ if(bright!=NULL) printf(,)。 if(bleft!=NULL||bright!=NULL) { printf(()。/*輸出空格數(shù)增加width*/ level[top][1]=0。/*將左子樹根節(jié)點入棧*/ stack[top]=pleft。/*輸出空格數(shù)增加width*/ level[top][1]=1。 stack[top]=pright。 top。i+=2) printf()。 for(i=n+1。i++)/*其中n為輸出的空格數(shù),字符以右對齊顯示*/ printf( )。/*根節(jié)點之前輸出(r)*/ } for(i=1。r39。break。/*左節(jié)點之前輸出(0)*/ case 1:type=39。039。/*退棧并凹入顯示該節(jié)點值*/ n=level[top][0]。 level[top][1]=2。 stack[top]=b。 char type。}}void disptree(BTree *b)/*以凹入表表示法輸出一棵二叉樹*/{ BTree *stack[MaxSize],*p。 } }}j++。case 2:stack[top]right=p。 else { switch(k) {case 1:stack[top]left=p。pleft=pright=NULL。/*為右節(jié)點*/ default:p=(BTree *)malloc(sizeof(BTree))。:k=2。 case 39。:top。/*為左節(jié)點*/ case 39。k=1。:top++。){switch(ch){case 39。while(ch!=39。b=NULL。int top=1,k,j=0。/*定義二叉樹類型*/void dispstack(BTree *stack[],int top)。 struct node *left,*right。}第六章 樹和二叉樹:includeincludedefine MaxSize 100define MaxWidth 40typedef char elemtype。 printf(廣義表g2:%d\n,disp(g2))。a39。,g2)。 delall(g1,39。 printf(廣義表g1:%d,disp(g1))。 g1=create(((a,b),a,(d,a)))。 qlink=t。 /*創(chuàng)建整個新表的表頭節(jié)點q*/ qtag=1。/*返回全表*/ } else { delall(plink,x,t)。 qlink=t。 q=t。 /*創(chuàng)建整個新表的表頭節(jié)點q*/ qtag=1。 if(p!=NULL) { delall(p,x,t)。/*返回空表*/ } else { delall(p,x,s)。 qlink=NULL。/*復(fù)制到原子節(jié)點*/ qtag=0。 if(p==NULL) q=NULL。}/*刪除x項*/includevoid delall(gnode *p,char x,gnode amp。 disp(g2)。 printf(由g1逆置為g2\n)。 printf(\n)。 printf(廣義表g1: )。 } } }}void main(){ gnode *g1,*g2。 qlink=NULL。/*連接*/ } else/*plink=NULL*/ { q=(gnode *)malloc(sizeof(gnode))。 while(rlink!=NULL)/*找到第一層的 最后一個節(jié)點*/ r=rlink。 q=t。 blink=NULL。/*產(chǎn)生表尾的逆置廣義表t*/ b=(gnode *)malloc(sizeof(gnode))。 } else/*為表的情況*/ { reverse(p,s)。 s=p。/*復(fù)制該原子節(jié)點*/ stag=0。 if(p==NULL) q=NULL。}/*逆置廣義表*/includevoid reverse(gnode *p,gnode *amp。 printf(g1與g3:)。 printf((same(g1,g2)==0)?不同: 相同)。 printf(\n)。 printf(廣義表g3: )。 disp(g2)。 printf(\n)。 printf(廣義表g1: )。 g2=create((a,(b,c,d),e,((f))))。}void main(){ gnode e,*g1,*g2,*g3。q==NULL) flag=1。 if(p!=NULLamp。amp。 if(flag) flag=same(plink,qlink)。qtag==1) flag=same(p,q)。 else if(ptag==1amp。amp。amp。}/*判別廣義表是否相等的遞歸算法*/includeint same(gnode *p,gnode *q){ int flag=1。 disp(q)。 gcopy(p,q)。 printf(原來的廣義表: )。 scanf(%s,str)。 char str[MaxLen]。 gcopy(plink,qlink)。 if(ptag==0) q=p。 else { q=(gnode *)malloc(sizeof(gnode))。}/*復(fù)制廣義表*/includevoid gcope(gnode *p,gnode *q){ if(p=NULL)。 else return(locate(plink,x))。 else if(ptag) find=locate(p,x)。amp。}int locate(gnode *p,char x)/*判斷x是否在廣義表中*/{ int find=0。 } }while(h)。 if(q) printf(,)。 } else/*為子表的情況*/ { if(!p) printf(())。!ptag)/*為原子之后繼節(jié)點的情況*/ { printf(%d,p)。 } if(pamp。 p=q。amp。amp。 q=hlink。 printf(()。 } return(gh)。 } }while(len0)。 ptag=1。 len=strlen(subs)。 p=r。 do { disastr(subs,hstr)。 subs[len2]=39。(39。 s++。/*建立一個新節(jié)點*/ ghtag=1。 ghlink=NULL。/*建立一個新節(jié)點*/ ghtag=0。 if(!strcmp(s,()))/*空表的情況*/ gh=NULL。 int len。}gnode *create(char s[])/*從字符串表示創(chuàng)建廣義表*/{ gnode *p,*q,*r,*gh。\039。i++。 while(s[i]) { rstr[r]=s[i]。,39。\039。j++。k) { hstr[j]=s[i]。amp。||s[i]==39。 if(s[i]!=39。)39。) k++。||k)) { if(s[i]==39。(s[i]!=39。 while(s[i]amp。則操作后的hstr為操作前的s,而操作后的s為空串*/{ int i=0,j=0,k=0,r=0。若串s中沒有字符39。,39。,39。}gnode。 struct node *slist。/*只取0(原子節(jié)點)或1(表節(jié)點)*/ struct node *link。s2)。 delall(amp。 create(amp。 printf(子串: )。 create(amp。 printf(字符串: )。}void main(){ strtype s1,s2。 n=index(s1,s2)。 n=index(s1,s2)。 else return (i+1)。 } else i++。 } if(j==s2len)/*s2中止時找到了子串*/ break。 s1ch[k]==s2ch[j]) { k++。 js2len amp。 while(ks1len amp。 if(s1ch[i]==s2ch[j]) { k=i+1。}includeincludeint index(strtype *s1,strtype *s2){ int i=0,j,k。 disp(amp。s2)。 s6=replace(amp。s4,6,1,amp。s3)。/*s3=+*/ s4=replace(amp。/*s2=y*/ s3=subs(amp。/*s1=**/ s2=subs(amp。 s1=subs(amp。 disp(amp。s, (xyz)+*)。}void main(){ strtype s,s1,s2,s3,s4,s5,s6。 =0。 } else { [0]=39。 []=39。n++,k++) /*連接s1的位置i及之后的字符*/ [n]=s1ch[k]。 for(n=,k=i+j1。ns2ch[n])/*連接s2串*/ [i+n1]=s2ch[n]。n++)/*把s1的前i1個字符賦給s*/ [n]=s1ch[n]。 if(i+j1=s1len) { for(n=0。}includeincludestrtype replace(strtype *s1,int i,int j,strtype *s2){ strtype s。}void disp(strtype *s)/*輸出串*/{ if(slen==0) printf(空串\n)。\039。 slen=slenn。islen。}int del(strtype *s,int pos,int n)/*刪除一個子串*/{ int i。\039。 slen=slen+tlen。jtlen。j)/*i之后的所有元素后移tlen個位置*/ sch[j+tlen]=sch[j]。 for(j=slen1。}int ins(strtype *s,strtype *t,int i)/*插入一個子串*/{ int j。\039。 slen=slen+tlen。itlen。 if(slen+tlenMaxLen) return 0。 } return sub。 []=39。i++) [ipos+1]=sch[i]。 else { for(i=pos1。 strtype sub。\039。 s2len=s1len。is1len。}void copy(strtype *s1,strtype *s2)/*串的復(fù)制*/{ int i。 slen=strlen(str)。}strtype。}第四章 串:includeincludedefine MaxLen 20typedef strcut{ char ch[MaxLen]。不是回文,str)。 else printf(39。%s39。 h=create(str)。 printf(輸入一個字符序列:)。}void main(){ char str[MaxLen]。 } if(p==NULL) return 1。 if(pdata==st[top]) p=pnext。 } p=h。 top++。 ode *p=h。}int judge(ode *h){ char st[MaxLen]。 } i++。/*r始終指向最后一個結(jié)點*/ } else { rnext=p。 if(i==0) { h=p。 pdata=s[i]。\039。 ode *h,*p,*r。}ode。試寫一個算法判別讀入的一個以‘’為結(jié)束符的字符序列是否是回
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1