文档详情

顺序存储结构线性表基本操作-纯C语言实现.doc

发布:2018-10-11约6.04千字共7页下载文档
文本预览下载声明
/////////////////////////////////////////////////////////// //--------------------------------------------------------- //??????????? 顺序存储结构线性表基本操作 纯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+
显示全部
相似文档