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

正文內(nèi)容

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

2023-07-02 06:58:43 本頁面
 

【正文】 性表:includeincludetypedef int elemtype。 nb=create(B)。 }void main(){ sqlist A,B,C。 else if(jnb)/*B還有元素*/ for(i=j。j++。jnb) if(A[i]B[j]) C[k++]=A[i++]。 disp(C,nc)。 disp(A,na)。 } return k1。 else if(A[i1]B[j1]) j。}/*運行結(jié)果 :創(chuàng)建一個順序表 輸入元素個數(shù):4輸入第1個元素值:2輸入第1個元素值:6輸入第1個元素值:3輸入第1個元素值:1輸出一個順序表2 6 3 1輸出一個順序表1 3 6 2 */ /*假設(shè)有兩個按元素值遞增有序排列的線性表A和B,均以單鏈表做存儲結(jié)構(gòu),請編寫算法將A表和B表歸并成一個按元素值遞減有序(即非遞增有序,允許表中含有值相同的元素)排列的線性表C,并要求利用原表(即A表和B表)的結(jié)點空間構(gòu)造C表*/includeint intersect(sqlist A,int na,sqlist B,int nb,sqlist C){ int i=na,j=nb,k=0。 n=create(A)。A[i]=A[ni1]。 /*m為長度的一半即[n\2]*/ elemtype temp。 if(delk(A,amp。 printf(輸入i,k:)。 }}void main(){ sqlist A。j*n。}/*運行結(jié)果創(chuàng)建一個順序表 輸入元素個數(shù):3輸入第1個元素值:2輸入第1個元素值:3輸入第1個元素值:5創(chuàng)建一個順序表輸入元素個數(shù):4輸入第1個元素值:2輸入第1個元素值:3輸入第1個元素值:4輸入第1個元素值:5比較結(jié)果:AB*//*刪除A中第i個元素起的k個元素*/includeint delk(sqlist A,int *n,int i,int k){ int j。 break。 n=p(A,na,B,nb)。}void main(){ sqlist A,B。amp。/*a=b*/ if(i==naamp。j。jnbamp。若A’=空表,B’!=空表,或者兩者均不為空表,且A’的首元小于B’的首元,則AB;否則AB。/*插入元素10*/ disp(A,n)。 int n。j) A[j+1]=A[j]。 /*若x大于最后的元素,則將其插入到最后*/ else { i=0。 else return 0。 while(i=namp。j++) A[j]=A[j+1]。}int del(sqlist A,int n,int i)/*在順序表中刪除第i個元素*/{ int j。j) A[j+1]=A[j]。}int ins(sqlist A,int n,int i,elemtype x)/*在順序表第i個元素前插入一個元素x,若i=0,則新元素作為第一個元素,若i=1,則插入在最后*/{ int j。 for(i=0。 } return n。in。 printf(輸入元素個數(shù):)。}第二章 線性表1.順序表:includedefine MaxLen 50/*順序表中最多元素個數(shù)*/typedef int elemtype。a,amp。a,amp。*x=*y。 if(*y*z) t=*y。第一章 緒論(預(yù)備知識)/*試寫一算法,自大至小輸出順序讀入的三個整數(shù)X,Y和Z的值*/62 / 62include void swap(int *x,int *y,int *z){ int t。 if(*x*y) t=*x。*y=*z。*y=t。b,amp。b,amp。typedef elemtype sqlist[MaxLen]。 scanf(%d,amp。i++) { printf(輸入第%d個元素值:,i+1)。}void disp(sqlist A,int n)/*輸出一個順序表*/{ int i。in。 if(i0||in) printf(i值下溢或上溢\n)。 /*將第i個元素及其后的元素后移*/ A[i]=x。 if(i=0||in) printf(i值下溢或上溢\n)。 /*將第i個元素之后的元素前移覆蓋A[i]*/ n。amp。}:/*設(shè)順序表va中的數(shù)據(jù)元素遞增有序。 while(xA[i]) i++。 /*移出插入x的位置*/ A[i]=x。 n=create(A)。 getch()。試寫一個比較A,B大小的算法(請注意:在算法中,不要破壞原表A和B,并且,也不一定先求得A’和B’才能進行比較)*/includeint p(sqlist A,int na,sqlist B,int nb){ int i=0,j=0。amp。 if(i==naamp。amp。j==nb) return 1。 int na,nb,n。 switch(n) { case 0:printf(A=B\n)。 case 1:printf(AB\n)。 if(i0||i+k1*n) { printf(i,k參數(shù)不正確\n)。j++) A[jk]=A[j]。 int n,i,k。 scanf(%d %d,amp。n,i,k)==1) disp(A,n)。 for(i=0。A[ni1]=temp。 disp(A,n)。 while(i=0amp。 else/*A[i1]=B[j1]*/ { C[k++]=A[i1]。}void main(){ sqlist A,B,C。 nb=create(B)。}/**//*假設(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。 else if(A[i]B[j]) C[k++]=B[j++]。 } if(ina)/*A還有元素*/ for(j=i。inb。 int na,nb,nc。 disp(B,nb)。/*定義數(shù)據(jù)域的類型*/typedef struct linknode/*定義節(jié)點類型*/{ elemtype data。 nodetype *h=NULL,*s,*t。 scanf(%d,amp。 hdata=d。 sdata=d。/*始終指向生成的單鏈表的最后一個節(jié)點*/ } i++。 if(p==NULL) printf(空表)。}int len(nodetype *h)/*返回單鏈表的長度*/{ int i=0。 } return i。/*i上溢或下溢*/ else { while (p!=NULLamp。 } return p。 snext=NULL。/*查找第i個節(jié)點,并由p指向該節(jié)點*/ if(p!=NULL) { snext=pnext。}nodetype *del(nodetype *n,int i)/*刪除第i個節(jié)點*/{ nodetype *p=h,*s。 } else { p=find(h,i1)。/*s指向要刪除的節(jié)點*/ pnext=snext。}void dispose(nodetype *h)/*釋放單鏈表的所有節(jié)點占有的空間*/{ nodetype *pa=h,*pb。 pa=pb。 if(len(h)=1) { printf(逆置的單鏈表至少有2個節(jié)點\n)。 while(q!=NULL) { r=qnext。 } hnext=NULL。 head=create()。}/*運行結(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) 當m=n時,或者C=(a1,b1,…,an,bn,an+1,…,am) 當mn時。 return NULL。 pbnext=q。}void main(){ nodetype *heada,*headb,*headc。 disp(headc)。/*pc總是指向生成的新單鏈表的最后一個節(jié)點*/ while(pa!=NULLamp。 pa=panext。 } else/*padata=pbdata的情況*/ { pcnext=pa。 } if(pa!=NULL) pcnext=pa。 free(pc)。 head2=create()。 disp(head3)。dlist *xor(dlist *p1,dlist *p2)/*在c/c++中異或運算符不能對地址進行異或運算,所以先將地址值轉(zhuǎn)換為長整形,然后進行異或運算,再將結(jié)果強制轉(zhuǎn)換成地址。 add3=add1^add2。 printf(創(chuàng)建一個雙鏈表(以0結(jié)束)\n)。 if(x==0)/*生成最后一個節(jié)點的link值后退出循環(huán)*/ { prelink=xor(r,NULL)。/*創(chuàng)建一個節(jié)點*/ sdata=x。 /*將slink置為前后節(jié)點地址之異或*/ r=pre。}void order(dlist *h,dlist *e){ dlist *pre=NULL,*pre1,*p=h。 pre1=p。 printf(\n)。e)。 order(e,h)。}stack。 } else { sttop++。 return 0。 }}int empty(stack *st)/*判斷???/{ if(sttop==0) return 1。 } else { *x=stdata[sttop]。i0。 char x。 for(i=0。(39。)。:push(amp。break。st,39。 case39。x)amp。)) ok=0。:if(!(pop(amp。x==39。 case39。x)amp。)) ok=0。st)amp。}void main(){ char *str。 if(correct(str)) printf(表達式括號匹配\n)。/*作為棧使用*/ char ch。) { if(ch=39。 ch=39。 while ((ch=str[i++])!=39。 ch=39。 ch=39。 } i。 } else if(ch==39。 } else if(ch==39。) { exp[t]=st[top]。 } else if(ch==39。)/*判斷為加減號*/ { while(top=0 amp。) { exp[t]=st[top]。st[top]=ch。/39。/39。 } top++。top。}int pvalue(char exp[],int *n){ int st[MaxLen],d。\039。amp。 do { d=10*d+ch39。)。+39。39。*39。/39。 } top。/*存儲原算術(shù)表達式*/ char exp[MaxLen]。str)。n)==1) printf(計算結(jié)果: %d\n,n)。根據(jù)非遞歸算法,畫出求akm(2,1)時棧的變化過程*/includedefine MaxLen 5000/*此數(shù)應(yīng)足夠大,因為m和n值的較小增長會引起函數(shù)值的極快增長,用的棧的空間也很大*/int f1(int m,int n){ if(m==0) r
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1