亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

數據結構之數組Array實例詳解

2020-01-26 14:07:41
字體:
來源:轉載
供稿:網友

數據結構之數組Array實例詳解

數組Array

基本操作

Status InitArray(int dimm,...)//若維數dim和隨后的各維長度合法,則構造相應的數組A,并返回OK Status DestroyArray()  //銷毀數組A Status Locate(va_list ap,int &off) //若ap指示的各下標值合法,則求出該元素在A中相對地址off Status Value(ElemType &e,...)  //A是n維數組,e為元素變量,隨后是n個下標值。若各下表不越界,則e賦值為所指定的A的元素值,并返回OK。 Status Assign(ElemType e,...)  //A是n維數組,e為元素變量,隨后是n各下表值。/若各下標不越界,則將e的值付給所指定的A的元素,并返回OK。 

幾個小程序(代碼正誤檢驗)

// //by coolxxx //#include<bits/stdc++.h> #include<iostream> #include<algorithm> #include<string> #include<iomanip> #include<map> #include<stack> #include<queue> #include<set> #include<bitset> #include<memory.h> #include<time.h> #include<stdio.h> #include<stdlib.h> #include<string.h> //#include<stdbool.h> #include<math.h> #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) #define abs(a) ((a)>0?(a):(-(a))) #define lowbit(a) (a&(-a)) #define sqr(a) ((a)*(a)) #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b)) #define mem(a,b) memset(a,b,sizeof(a)) #define eps (1e-10) #define J 10000 #define mod 1000000007 #define MAX 0x7f7f7f7f #define PI 3.14159265358979323 #pragma comment(linker,"/STACK:1024000000,1024000000") #define N 8 const int OK=1; const int ERROR=0; const int INFEASIBLE=-1; typedef int Status; using namespace std; typedef long long LL; double anss; LL aans; int cas,cass; LL n,m,lll,ans;  typedef int ElemType; #include<stdarg.h>      //標準頭文件,提供宏va_start、va_arg、va_end 用于存取變長參數表 const int MAX_ARRAY_DIM=8; //假設數組維數的最大值為8 typedef struct {   ElemType *base;     //數組元素基址,由InitArray分配   int dim;        //數組維數   int *bounds;      //數組維界基址,由InitArray分配   int *constants;     //數組映像函數常量基址,由InitArray分配   int elemtotal;   Status InitArray(int dimm,...)//若維數dim和隨后的各維長度合法,則構造相應的數組A,并返回OK   {     int i;     va_list ap;     if(dimm<1 || dimm>MAX_ARRAY_DIM)return ERROR;     dim=dimm;     bounds=(int *)malloc(dim*sizeof(int));     if(!bounds)exit(OVERFLOW);//若各維長度合法,則存入A.bounds,并求出A的元素總數elemtotal     elemtotal=1;     va_start(ap,dim);  //ap為va_list類型,是存放變長參量數表信息的數組     for(i=0;i<dim;i++)     {       bounds[i]=va_arg(ap,int);       if(bounds[i]<0)return UNDERFLOW;       elemtotal*=bounds[i];     }     va_end(ap);     base=(ElemType *)malloc(elemtotal*sizeof(ElemType));     if(!base)exit(OVERFLOW);     constants=(int *)malloc(dim*sizeof(int));     //求映像函數的常數ci,并存入A.constants[i-1],i=1,...,dim     if(!constants)exit(OVERFLOW);     constants[dim-1]=1; //L=1,指針的增減以元素的大小為單位     for(i=dim-2;i>=0;i--)       constants[i]=bounds[i+1]*constants[i+1];     return OK;   }//InitArray      Status DestroyArray()  //銷毀數組A   {     if(!base)return ERROR;     free(base);base=NULL;     if(!bounds)return ERROR;     free(bounds);bounds=NULL;     if(!constants)return ERROR;     free(constants);constants=NULL;     return OK;   }//DestroyArray      Status Locate(va_list ap,int &off) //若ap指示的各下標值合法,則求出該元素在A中相對地址off   {     int i,ind;     off=0;     for(i=0;i<dim;i++)     {       ind=va_arg(ap,int);       if(ind<0 || ind>=bounds[i])return OVERFLOW;       off+=constants[i]*ind;     }     return OK;   }//Locate      Status Value(ElemType &e,...)  //A是n維數組,e為元素變量,隨后是n個下標值。                   //若各下表不越界,則e賦值為所指定的A的元素值,并返回OK。   {     va_list ap;     int result,off;     va_start(ap,e);     if((result=Locate(ap,off))<=0)return result;     e=*(base+off);     return OK;   }//Value      Status Assign(ElemType e,...)  //A是n維數組,e為元素變量,隨后是n各下表值。                   //若各下標不越界,則將e的值付給所指定的A的元素,并返回OK。   {     va_list ap;     int result,off;     va_start(ap,e);     if((result=Locate(ap,off))<=0)return result;     *(base+off)=e;     return OK;   }//Assign    }Array; void ArrayCheck()//代碼正誤檢驗 {   int i,j,k;   Array A;   ElemType e;   A.InitArray(3,2,3,2);   printf("維度:%d/n總元素個數:%d/n各維維界:",A.dim,A.elemtotal);   for(i=0;i<A.dim;i++)     printf("%d ",A.bounds[i]);   puts("");   for(i=0;i<A.bounds[0];i++)     for(j=0;j<A.bounds[1];j++)       for(k=0;k<A.bounds[2];k++)         A.Assign(i*100+j*10+k+111,i,j,k);   for(i=0;i<A.bounds[0];i++,puts(""))     for(j=0;j<A.bounds[1];j++,puts(""))       for(k=0;k<A.bounds[2];k++)         printf("%d ",(A.Value(e,i,j,k),e));   A.DestroyArray();   puts(""); } 
程序結果: 維度:3 總元素個數:12 各維維界:2 3 2 111 112 121 122 131 132  211 212 221 222 231 232 

主函數:

int main() {   #ifndef ONLINE_JUDGEW // freopen("1.txt","r",stdin);   freopen("2.txt","w",stdout);   #endif   int i,j,k;   int x,y,z,xx,yy; // init(); // for(scanf("%d",&cass);cass;cass--) // for(scanf("%d",&cas),cass=1;cass<=cas;cass++) // while(~scanf("%s",s)) // while(~scanf("%d%d",&n,&m))   {     ArrayCheck();   }   return 0; } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一精品夜夜躁人人躁| 亚洲精品久久久久久久久久久久| 国产精品私拍pans大尺度在线| 国产精品美乳一区二区免费| 色综合久久中文字幕综合网小说| 国产69精品久久久久99| 日韩av在线一区| 日韩欧美国产高清91| 亚洲理论在线a中文字幕| 久久久久国产精品一区| 欧美巨猛xxxx猛交黑人97人| 国产精品高潮呻吟久久av野狼| 国产精品影片在线观看| 国产这里只有精品| 日韩精品福利在线| 国产精品久久久av久久久| 国产高清视频一区三区| 日韩中文有码在线视频| 国产v综合ⅴ日韩v欧美大片| 日本韩国在线不卡| 欧美理论电影在线观看| 国产精品自产拍高潮在线观看| 在线观看日韩www视频免费| 亚洲的天堂在线中文字幕| 久久久久久免费精品| 这里只有精品在线播放| 性欧美视频videos6一9| 亚洲天堂av电影| 国产欧美 在线欧美| 国产精品久久久久77777| 亚洲一区中文字幕| 成人字幕网zmw| 国产久一一精品| 中文字幕日韩欧美精品在线观看| 国产欧美一区二区| 国产精品自拍小视频| 欧美精品性视频| 日韩黄色av网站| 久久精品人人爽| 91精品国产自产在线| 久久影院免费观看| 欧美激情高清视频| 国产一区玩具在线观看| 亚洲在线免费看| 亚洲欧洲国产精品| 精品亚洲国产成av人片传媒| 亚洲国产天堂网精品网站| 国产精品爽爽爽| 国产+人+亚洲| 国产精品久久久久影院日本| 国产日本欧美视频| 欧美激情网站在线观看| 国产亚洲aⅴaaaaaa毛片| 亚洲欧美精品一区二区| 日韩欧美主播在线| 国产日产欧美a一级在线| 国产精品视频午夜| 亚洲欧洲第一视频| 中文欧美日本在线资源| 国产这里只有精品| 亚洲女性裸体视频| 欧美插天视频在线播放| 亚洲国产欧美一区| 中文字幕亚洲综合久久筱田步美| 亚洲va男人天堂| 成人免费直播live| 国产一区二中文字幕在线看| 国产激情视频一区| 日韩一区二区久久久| 57pao精品| 国产精品白嫩初高中害羞小美女| 久久香蕉国产线看观看av| 永久免费毛片在线播放不卡| 中日韩美女免费视频网址在线观看| 九九精品在线播放| 久久中文字幕在线| 国产日本欧美视频| 性色av一区二区咪爱| 亚洲人成在线电影| 国产福利视频一区| 色悠悠久久久久| 亚洲片国产一区一级在线观看| 中文字幕亚洲欧美日韩在线不卡| 91亚洲精品久久久久久久久久久久| 成人www视频在线观看| 欧美极品少妇与黑人| 久久久精品国产一区二区| 91日本视频在线| 国产美女久久精品香蕉69| 亚洲一区免费网站| 国产精品久久91| 狠狠爱在线视频一区| 亚洲香蕉伊综合在人在线视看| 98视频在线噜噜噜国产| 久久亚洲一区二区三区四区五区高| 欧美性xxxx极品高清hd直播| 97在线视频观看| 久久久国产精品一区| 亚洲二区在线播放视频| 日韩欧美aⅴ综合网站发布| 日韩在线激情视频| 欧美理论电影在线播放| 亚洲人在线观看| 亚洲欧美第一页| 精品国产欧美一区二区三区成人| 日韩网站在线观看| 精品中文字幕在线观看| 亚洲国产成人爱av在线播放| 成人春色激情网| 亚洲一区二区三区香蕉| 色婷婷综合久久久久中文字幕1| 成人激情电影一区二区| 国外成人在线视频| 亚洲成人av在线播放| 91社区国产高清| 国产精品久久久久免费a∨| 久久精品99久久久香蕉| 欧美丰满老妇厨房牲生活| 亚洲综合色激情五月| 欧美日本精品在线| 色综合亚洲精品激情狠狠| 欧美黄色片在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美巨猛xxxx猛交黑人97人| 国产精品久久中文| 精品亚洲aⅴ在线观看| 国产91精品在线播放| 亚洲一级黄色片| 亚洲大尺度美女在线| 久久亚洲精品小早川怜子66| 亚洲色图激情小说| 爽爽爽爽爽爽爽成人免费观看| 日本一欧美一欧美一亚洲视频| 97视频在线观看网址| 国产亚洲欧美日韩一区二区| 538国产精品一区二区免费视频| 国产精品网红直播| 精品中文字幕视频| 久久亚洲精品中文字幕冲田杏梨| 另类色图亚洲色图| 欧美日韩免费一区| 精品美女永久免费视频| 中文字幕精品国产| 日韩欧美国产一区二区| 欧美午夜丰满在线18影院| 国产精品扒开腿做爽爽爽视频| 亚洲精品日韩丝袜精品| 国产一区二区三区视频| 国内揄拍国内精品| 4388成人网| 欧美亚洲视频一区二区| 亚洲精品国产精品国自产观看浪潮| 亚洲国产又黄又爽女人高潮的| 九九热r在线视频精品| 亚洲精品午夜精品| 亚洲欧美日韩综合| 久久91亚洲精品中文字幕奶水| 欧美电影免费观看| 日韩激情视频在线播放| 日本久久久久久久久| 欧美小视频在线| 久青草国产97香蕉在线视频| 欧美性猛交xxxx乱大交3| 久久综合色88|