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

正文內(nèi)容

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

2025-06-26 06:52本頁面
  

【正文】 { snext=pnext。 h=s。 snext=NULL。 s=(nodetype *)malloc(sizeof(nodetype))。 } return p。ji)/*查找第i個節(jié)點,并由p指向該節(jié)點*/ { j++。/*i上溢或下溢*/ else { while (p!=NULLamp。 int j=1。 } return i。 while(p!=NULL) { p=pnext。}int len(nodetype *h)/*返回單鏈表的長度*/{ int i=0。 p=pnext。 if(p==NULL) printf(空表)。}void disp(nodetype *h)/*輸出由h指向的單鏈表的所有data域之值*/{ nodetype *p=h。/*始終指向生成的單鏈表的最后一個節(jié)點*/ } i++。tnext=s。 sdata=d。t=h。 hdata=d。 if(d==0) break。 scanf(%d,amp。 peintf(建立一個單鏈表\n)。 nodetype *h=NULL,*s,*t。}nodetype。/*定義數(shù)據(jù)域的類型*/typedef struct linknode/*定義節(jié)點類型*/{ elemtype data。 disp(C,nc)。 disp(B,nb)。 disp(A,na)。 int na,nb,nc。 return k。inb。j++) C[k++]=A[j]。 } if(ina)/*A還有元素*/ for(j=i。 i++。 else if(A[i]B[j]) C[k++]=B[j++]。amp。}/**//*假設(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。 nc=intersect(A,na,B,nb,C)。 nb=create(B)。 na=create(A)。}void main(){ sqlist A,B,C。j。 else/*A[i1]=B[j1]*/ { C[k++]=A[i1]。j=0) if(A[i1]B[j1]) i。 while(i=0amp。 disp(A,n)。 disp(A,n)。 int n。A[ni1]=temp。i++)/*將A[i]與A[ni1]進(jìn)行交換*/ { temp=A[i]。 for(i=0。 }/*運行結(jié)果:創(chuàng)建一個順序表 輸入元素個數(shù):5輸入第1個元素值:1輸入第1個元素值:2輸入第1個元素值:3輸入第1個元素值:4輸入第1個元素值:5輸出一個順序表1 2 3 4 5輸入I,k:2 2輸出一個順序表1 4 5 */ /*試寫一算法,實現(xiàn)順序表的就地逆置,即利用原表的存儲空間將線性表(a1,a2,...,an)逆置為(an,an1,...,a1).*/includevoid invert(sqlist A,int n){ int m=n/2,i。n,i,k)==1) disp(A,n)。k)。 scanf(%d %d,amp。 disp(A,n)。 int n,i,k。 return 1。j++) A[jk]=A[j]。 } else { for(j=i+k1。 if(i0||i+k1*n) { printf(i,k參數(shù)不正確\n)。 } getch()。 case 1:printf(AB\n)。 case 1:printf(AB\n)。 switch(n) { case 0:printf(A=B\n)。 nb=create(B)。 int na,nb,n。 else return 1。j==nb) return 1。/*ab*/ if(i!=naamp。amp。j==nb) return 0。 if(i==naamp。/*比較相同部分*/ i。amp。amp。試寫一個比較A,B大小的算法(請注意:在算法中,不要破壞原表A和B,并且,也不一定先求得A’和B’才能進(jìn)行比較)*/includeint p(sqlist A,int na,sqlist B,int nb){ int i=0,j=0。若A’=B’=空表,則A=B。 getch()。 n=insert(A,n,10)。 n=create(A)。/*順序表長度增1*/}void main(){ sqlist A。 /*移出插入x的位置*/ A[i]=x。j=i。 while(xA[i]) i++。 if(x=A[n1]) A[n]=x。}:/*設(shè)順序表va中的數(shù)據(jù)元素遞增有序。 if(in) return 1。amp。}int find(sqlist A,int n,elemtype x)/*在一個有n個元素的順序表A中查找元素值為x的元素*/{ int i=0。 /*將第i個元素之后的元素前移覆蓋A[i]*/ n。jn。 if(i=0||in) printf(i值下溢或上溢\n)。/*順序表長度加1*/ } return n。 /*將第i個元素及其后的元素后移*/ A[i]=x。j=i。 if(i0||in) printf(i值下溢或上溢\n)。 printf(\n)。in。 if(n==0) printf(空表)。}void disp(sqlist A,int n)/*輸出一個順序表*/{ int i。A[i])。i++) { printf(輸入第%d個元素值:,i+1)。 for(i=0。 scanf(%d,amp。 printf(創(chuàng)建一個順序表:\n)。typedef elemtype sqlist[MaxLen]。printf(%d %d %d,a,b,c)。b,amp。swap(amp。b,amp。scanf(%d,%d,%d,amp。*y=t。 if(*x*y) t=*x。*y=*z。*y=t。 if(*x*y) t=*x。數(shù)據(jù)結(jié)構(gòu)的語言算法 以下數(shù)據(jù)結(jié)構(gòu)算法由C語言編譯,并在TC上運行通過,其中,擴(kuò)展名為”.CPP”的為頭文件,運行時只需將頭文件與相應(yīng)算法連接即可。第一章 緒論(預(yù)備知識)/*試寫一算法,自大至小輸出順序讀入的三個整數(shù)X,Y和Z的值*/62 / 62include void swap(int *x,int *y,int *z){ int t。*x=*y。 if(*y*z) t=*y。*z=t。*x=*y。 }main(){int a,b,c。a,amp。c)。a,amp。c)。}第二章 線性表1.順序表:includedefine MaxLen 50/*順序表中最多元素個數(shù)*/typedef int elemtype。int create(sqlist A)/*創(chuàng)建線形表*/{ int i,n。 printf(輸入元素個數(shù):)。n)。in。 scanf(%d,amp。 } return n。 printf(輸出一個順序表: \n)。 for(i=0。i++) printf(%d ,A[i])。}int ins(sqlist A,int n,int i,elemtype x)/*在順序表第i個元素前插入一個元素x,若i=0,則新元素作為第一個元素,若i=1,則插入在最后*/{ int j。 else { for(j=n1。j) A[j+1]=A[j]。n++。}int del(sqlist A,int n,int i)/*在順序表中刪除第i個元素*/{ int j。 else { for(j=i1。j++) A[j]=A[j+1]。 /*順序表長度減1*/ } return n。 while(i=namp。A[i]!=x) i++。 else return 0。試寫一算法,將x插入到順序表的適當(dāng)位置上,以保持該表的有序性*/includeint insert(sqlist A,int n,elemtype x)/*順序表A的長度為n*/{ int i,j。 /*若x大于最后的元素,則將其插入到最后*/ else { i=0。/*查找插入位置i*/ for(j=n。j) A[j+1]=A[j]。 } return (n+1)。 int n。 disp(A,n)。/*插入元素10*/ disp(A,n)。}/*運行結(jié)果:創(chuàng)建一個順序表 輸入元素個數(shù):3 輸入第1個元素值:6輸入第1個元素值:9輸入第1個元素值:14輸出一個順序表6 9 14輸出一個順序表6 9 10 14 *//*設(shè)A=(a1,…,am)和B=(b1,…,bm)均為順序表,A’和B’分別為A和B中除去最大共同前綴后的子表(例如,A=(x,y,y,z,x,z),B=(x,y,y,z,y,x,x,z),則兩者中最大的共同前綴為(x,y,y,z),在兩表中除去最大的共同前綴后的子表分別為A’=(x,z)和B’=(y,x,x,z)。若A’=空表,B’!=空表,或者兩者均不為空表,且A’的首元小于B’的首元,則AB;否則AB。 while(inaamp。jnbamp。A[i++]==B[j++])。j。amp。/*a=b*/ if(i==naamp。j!=nb) return 1。amp。/*ab*/ if(A[i]B[j]) return 1。}void main(){ sqlist A,B。 na=create(A)。 n=p(A,na,B,nb)。 break。 break。 break。}/*運行結(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。 return 0。j*n。 (*n)=k。 }}void main(){ sqlist A。 n=create(A)。 printf(輸入i,k:)。i,amp。 if(delk(A,amp。 getch()。 /*m為長度的一半即[n\2]*/ elemtype temp。im。A[i]=A[ni1]。 }}void main(){ sqlist A。 n=create(A)。 invert(A,n)。}/*運行結(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。amp。 else if(A[i1]B[j1]) j。 i。 } return k1。 int na,nb,nc。 disp(A,na)。 disp(B,nb)。 disp(C,nc)。 while(inaamp。jnb)
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1