考研資料結構複習 陣列(順序結構)

2021-08-28 17:20:15 字數 2140 閱讀 6285

/**

***@title :考研資料結構複習

***@subject :陣列(順序結構)

***@author :lxfhahaha

***@language: c語言

***@time : 2018/10/4 19:25

*****/

#include #include #include //用於訪問變長參數列

#include #define max_array_dim 8 //假設陣列維數的最大值為8

#define ok 1

#define error 0

#define true 1

#define false 0

typedef int bool;

typedef int elemtype;

typedef int status;

typedef struct array;

//若維數dim和隨後的各維長度合法,則構造相應的陣列array,並返回ok

status initarray(array *array,int dim, ... )

array->dim=dim;

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

if(!array->bounds)

int elemtotal=1;

va_list ap;

va_start(ap,dim);

for(i=0;ibounds[i]=va_arg(ap,int);

elemtotal *= array->bounds[i];

} va_end(ap);

array->base=(elemtype*)malloc(sizeof(elemtype)*elemtotal);

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

if(!array->base||!array->constants)

array->constants[dim-1]=1; //最後的一維是一維陣列,,引數固定為1

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

return ok;

}//銷毀陣列array

status destroyarray(array *array)

//若ap所指示的各下標值合法,則求出個該元素在array中相對位址off

status locate(array array, va_list ap, int *off)

*off += array.constants[i]*j;//計算待訪問的元素和陣列基址的距離

}return ok;

}//array是n維陣列,e為元素變數,隨後是n個下標值

//若各下標不超界,則e賦值為所指定的array的元素值,並返回ok

status value(array array,elemtype *e, ...)

va_list ap;

va_start(ap,e);

if(!locate(array,ap,&off))

va_end(ap);

*e=*(array.base+off);

return ok;

}//array是n維陣列,e為元素變數,隨後是n個下標值

//若下標不超界,則將e的值賦給指定的array的元素值,並返回ok

考研複習之資料結構 順序表(靜態分配)

忘得差不多的順序表撿起來重新寫,寫了快兩個小時吧,基本上算是寫完了,有希望看到其他功能的歡迎補充!include include include includeusing namespace std define maxsize 50 typedef structsqlist int initlis...

考研資料結構

一 考研中的變數型別 1 基本型別 int float char 2 指標型別 3 結構體型 陣列,結構體 4 void型 考研中 定義無返回值函式。二 控制語句 1 判斷語句if 做決策 2 迴圈語句 做重複的事 for while 講講break與continue break結束整個迴圈 con...

考研資料結構複習筆記 檔案操作

從檔案中讀取資料,內容每行是乙個學生的資訊,包含姓名 不超過10字元 性別 0 男,1 女 年齡 班級號 不超過6字元 要求讀取資料後,找出年齡最小的男生和女生,並存入檔案f.txt 實現 c語言版 include include include define n 6 struct student ...