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

上传人:博****1 文档编号:431758471 上传时间:2023-01-07 格式:DOC 页数:7 大小:32.51KB
返回 下载 相关 举报
顺序存储结构线性表基本操作纯C语言实现_第1页
第1页 / 共7页
顺序存储结构线性表基本操作纯C语言实现_第2页
第2页 / 共7页
顺序存储结构线性表基本操作纯C语言实现_第3页
第3页 / 共7页
顺序存储结构线性表基本操作纯C语言实现_第4页
第4页 / 共7页
顺序存储结构线性表基本操作纯C语言实现_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《顺序存储结构线性表基本操作纯C语言实现》由会员分享,可在线阅读,更多相关《顺序存储结构线性表基本操作纯C语言实现(7页珍藏版)》请在金锄头文库上搜索。

1、/ /- / 顺序存储结构线性表基本操作 纯C语言实现 / / a simple example of Sq_List by C language / / by wangweinoo1PG /- / #include #include /以下为函数运行结果状态代码 #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 /线性

2、表存储空间分配增量 typedef int Status; /函数类型,其值为为函数结果状态代码 typedef int ElemType; /假设数据元素为整型 typedef struct ElemType *elem; /存储空间基址 int length; /当前长度 int listsize; /当前分配的存储容量 Sqlist; /实现线性表的顺序存储结构的类型定义/*static*/ Sqlist L;/为了引用方便,定义为全局变量/*static*/ ElemType element;Status InitList(Sqlist L);Status DestroyList(Sq

3、list L);Status ClearList(Sqlist L);Status ListEmpty(Sqlist L);Status ListLength(Sqlist L);Status GetElem(Sqlist L,int i, ElemType *element);Status LocationElem(Sqlist L,ElemType element);Status PriorElem(Sqlist L,ElemType cur_e,ElemType *pre_e);Status NextElem(Sqlist L,ElemType cur_e,ElemType *next_

4、e);Status ListInsert(Sqlist L,int i,ElemType e);Status ListDelet(Sqlist L,int i,ElemType e);/函数名: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=

5、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

6、!=NULL:OK/Status ClearList(Sqlist L) int i; if(L.elem=NULL) exit(ERROR); int i; ElemType *p_elem=L.elem; for(i=0;iL.length;i+) *L.elem=NULL; L.elem+; L.elem=p_elem; return OK;/函数名:ListEmpty()/参数:SqList L/初始条件:线性表L已存在/功能:判断线性表是否为空/返回值:空:TRUE/ 非空:FALSE/Status ListEmpty(Sqlist L) int i; ElemType *p_ele

7、m=L.elem; for(i=0;iL.length;i+) if(*L.elem!=0) L.elem=p_elem; return FALSE; L.elem+; return TRUE;/函数名:ListLength()/参数:SqList L/初始条件:线性表L已存在/功能:返回线性表长度/返回值:线性表长度(L.length)/Status ListLength(Sqlist L) return L.length;/函数名:GetElem()/参数:SqList L,int i,ElemType *element/初始条件:线性表L已存在,1=i=ListLength(L)/功能:

8、用e返回线性表中第i个元素的值/返回值:(iListLength(L):OVERFLOW/ 1=i=ListLength(L):OK/Status GetElem(Sqlist L,int I, ElemType *element) int j; ElemType *p_elem=L.elem; if(iL.length) return OVERFLOW; for(j=1;j=i;j+) L.elem+; *element=*L.elem;/element=L.elem L.elem=p_elem; return OK;/函数名:LocateElem()/参数:Sqlist L,ElemTyp

9、e element/初始条件:线性表L已存在/功能:返回顺序表L中第1个与element相等的元素/返回值:若在L中存在于element相等的元素:其位序/ 若在L中不存在与element相等的元素:0/Status LocationElem(Sqlist L,ElemType element) int i; ElemType *p_elem=L.elem; for(i=1;i1&i=L.length,LocationElem()存在/功能:用pre_e返回线性表中cur_e的前驱/返回值:iL.length:OVERFLOW/ i1&i=L.length:OK/Status PriorElem(Sqlist L,ElemType cur_e,ElemType *pre_e) int i,j;ElemType *p_elem=L.elem; /int i,j; i=LocationElem(L,cur_e); if(iL.length) exit(OVERFLOW); /*for(j=1;ji;j+) if(j=(i-1) pre_e=L.elem; L.elem=p_elem;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号