顺序存储结构线性表基本操作-纯C语言实现.doc
文本预览下载声明
/////////////////////////////////////////////////////////// //--------------------------------------------------------- //??????????? 顺序存储结构线性表基本操作 纯C语言实现 // //??????????? a simple example of Sq_List by C language // //??????????????????? by wangweinoo1[PG] //--------------------------------------------------------- /////////////////////////////////////////////////////////// #include stdio.h #include stdlib.h//以下为函数运行结果状态代码 #define TRUE 1#define FALSE 0#define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define LIST_INIT_SIZE 5? //线性表存储空间的初始分配量 #define LISTINCREMENT 1? //线性表存储空间分配增量 typedef int Status; //函数类型,其值为为函数结果状态代码 typedef int ElemType; //假设数据元素为整型 typedef struct { ??? ElemType *elem; //存储空间基址 ??? int length; //当前长度 ??? int listsize; //当前分配的存储容量 }Sqlist; //实现线性表的顺序存储结构的类型定义static Sqlist L;//为了引用方便,定义为全局变量static ElemType element;/////////////////////////////////////////函数名:InitList()//参数:SqList L//初始条件:无//功能:构造一个空线性表//返回值:存储分配失败:OVERFLOW//??????? 存储分配成功:OK///////////////////////////////////////Status InitList(Sqlist L){??? L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));??? if(L.elem==NULL)??????? exit(OVERFLOW);??? else??? {??????? L.length=0;??????? L.listsize=LISTINCREMENT;??????? return OK;??? }}/////////////////////////////////////////函数名:DestroyList()//参数:SqList L//初始条件:线性表L已存在//功能:销毁线性表//返回值:L.elem==NULL:ERROR//??????? L.elem!=NULL:OK///////////////////////////////////////Status DestroyList(Sqlist L){??? if(L.elem==NULL)??????? return ERROR;??? else??????? free(L.elem);??? return OK;}/////////////////////////////////////////函数名:ClearList()//参数:SqList L//初始条件:线性表L已存在//功能:清空线性表//返回值:L.elem==NULL:ERROR//??????? L.elem!=NULL:OK///////////////////////////////////////Status ClearList(Sqlist L){??? if(L.elem==NULL)??????? exit(ERROR);??? int i;??? ElemType *p_elem=L.elem;??? for(i=0;iL.length;i++)??? {??????? *L.elem=NULL;??????? L.elem+
显示全部