#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,表示棧中無元素,而後每壓入乙個新的元素,...