/**
***@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 ...