#include <stdio.h>
#include <stdlib.h>
/* 函数结果状态代码 */
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1 //不可实行
#define OVERFLOW -2 //溢出
/* STATUS是函数的类型,其值是函数结果状态代码 */
typedef int STATUS;
typedef int ELEMTYPE;
/* 线性表的动态分配顺序存储结构 */
#define LIST_INIT_SIZE 100 //线性表存储空间的初始化分配量
#define LISTINCREMENT 10 //线性表存储空间的分配增量
typedef struct {
ELEMTYPE * elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量(以sizeof(ELEMTYPE)为单位)
}SqList;
#define NUM 5
/****************************************************************
构造一个空的线性表,并将每个元素初始化为0.
成功返回OK,失败返回OVERFLOW.
****************************************************************/
STATUS InitList_Sq(SqList *L)
{
L-> elem = (ELEMTYPE *) malloc(LIST_INIT_SIZE * sizeof(ELEMTYPE));
if(!L-> elem) return OVERFLOW; //存储分配失败
L-> length = 0; //空间长度为0
L-> listsize = LIST_INIT_SIZE; //初始存储容量
return OK;
}
/****************************************************************
测试函数(main函数)
*****************************************************************/
void main()
{
SqList L;
int i;
//测试初始值
InitList_Sq(&L);
printf( "测试初始值/t/tlength = %d/n ", L.length);
for(i = 0; i < NUM; i++)
printf( "elem[%d] = %d ", i, L.elem[i]);
printf( "/n/n ");
}