C語言資料結構 陣列順序儲存結構的實現和表示

2021-08-01 09:26:15 字數 1774 閱讀 7708

#include

#include/* malloc()等 */

#include/* eof(=^z或f6),null */

#include/* atoi() */

#include/* eof() */

#include/* floor(),ceil(),abs() */

//#include/* exit() */

/* 函式結果狀態** */

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

/* #define overflow -2 因為在math.h中已定義overflow的值為3,故去掉此行 */

typedef int status; /* status是函式的型別,其值是函式結果狀態**,如ok等 */

typedef int boolean; /* boolean是布林型別,其值是true或false */

typedef int elemtype;

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

typedef struct

array;

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

va_end(ap);

(*a).base=(elemtype *)malloc(elemtotal*sizeof(elemtype));

if(!(*a).base)

exit(overflow);

(*a).constants=(int

*)malloc(dim*sizeof(int));

if(!(*a).constants)

exit(overflow);

(*a).constants[dim-1]=1;

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

(*a).constants[i]=(*a).bounds[i+1]*(

*a).constants[i+1];

return ok;

}status destroyarray(array *a)

else

return error;

if((*a).bounds)

else

return error;

if((*a).constants)

else

return error;

return ok;

}status locate(array a,va_list ap,int

*off) /* value()、assign()呼叫此函式 */

return ok;

}status value(elemtype *e,array a,...) /* 在vc++中,...之前的形參不能是引用型別 */

status assign(array *a,elemtype e,...)

int main()

printf("\n");

}printf("\n");

}p1=a.base;

printf("a.base=\n");

for(i=0; i*bound2

*bound3; i++) /* 順序輸出a.base */

destroyarray(&a);

system("pause");

}

資料結構 順序儲存結構的C語言程式

include include define list init size 100 線性表儲存空間的初始化分配量 define listincenrement 10 線性表儲存空間分配增量 當儲存空間不夠時要用到 typedef int elemtype struct list int initli...

資料結構 棧的順序儲存結構 c語言版

順序棧的初始化,建立,壓入資料,取出資料,刪除,遍歷輸出,銷毀等操作 include include define maxsize 10 typedef int elemtype typedef struct stack,sqstack initstack sqstack s push sqstac...

資料結構 線性表的順序儲存結構(C語言)

問題描述 編寫sqlist.cpp,實現順序表的各種基本運算,並在基礎上設計乙個主程式exp2 1.cpp,完成如下功能 1 初始化順序表l 2 依次插入a,b,c,d,e元素 3 輸出順序表 4 輸出順序表的長度 5 判斷順序表l是否非空 6 輸出順序表l的第三個元素 7 輸出元素a的位置 8 在...