陣列的順序表示與實現

2021-07-23 09:44:43 字數 1214 閱讀 2437

#include#include#include//使用變長參數列需要引入此標頭檔案

#define max_dim 8

typedef struct

array,*parray;

bool init(parray array,int dim,...);//初始化,bounds的賦值採用變長參數列

bool locate(parray array,va_list list,int * off);//根據下標定位,得到off

bool getvalue(int * e,parray array,...);//利用locate獲取off,從而得到元素的值

bool assign(int e,parray array,...);//為陣列的元素賦值

int main(void)

bool init(parray array,int dim,...)

//為bounds賦值

va_start(list,dim);//從dim後開始讀取

for(i=0;ibounds[i] = va_arg(list,int);//從參數列中讀取

total*=array->bounds[i];//計算總個數,用於base的記憶體分配

} va_end(list);//結束讀取參數列

//為base分配空間

array->base = (int * )malloc(sizeof(int)*total);

if(null == array->base)

//為constants分配空間

array->constants = (int * )malloc(sizeof(int)*dim);

if(null == array->constants)

//賦值

array->constants[dim-1] = 1;//最後一維 為1

for(i=dim-2;i>=0;--i)

return true;

}bool locate(parray array,va_list list,int * off)

//printf("locate中的off為%d\n",*off);

return true;

}bool getvalue(int * e,parray array,...)

bool assign(int e,parray array,...)

陣列的順序表示和實現

c5 1.h 陣列的順序儲存結構。define max array dim 8 假設陣列維數的最大值為8 struct array bo5 1.cpp 順序儲存陣列 儲存結構由c5 1.h定義 的基本操作 5個 status initarray array a,int dim,void destro...

順序表的表示與實現

1.順序表的儲存結構 define list int size 10 define list increment 2 struct sqlist 2.建立乙個空的順序表l void initlist sqlist l 3.銷毀順序表 void destorylist sqlist l 4.將順序表重...

順序棧的表示與實現

說明 想要使用順序表實現棧,結構體中應包含棧頂和棧底的指標,同時需要指定棧的儲存單元大小 動態可變 其中棧底指標base用來動態分配棧的記憶體空間,棧頂指標top用來指定棧頂元素在順序棧中的位置。初始化時top bas etop base top ba se,表示棧中無元素,而後每壓入乙個新的元素,...