- 13
- 0
- 约6.53千字
- 约 10页
- 2018-10-17 发布于河北
- 举报
归并La和Lb得到新的线性表Lc-(二)
#includestdio.h
#includemalloc.h
#define LIST_INIT_SIZE 100 // 初始化大小
#define LISTINCREMENT 15
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1 // 不可实行的
#define OVERFLOW -2 // 溢出
#includeprocess.h // exit()
typedef int ElemType; // 基本(元素)类型
typedef struct
{
ElemType * elem;
int length;
int listsize;
}SqList;
int InitList(SqList *L)
// 操作结果:构造一个空的顺序线性表
{
(*L).elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!(*L).elem) // 存储分配失败
exit(OVERFLOW);
(*L).length=0; // 空表长度为0
(*L).listsize=LIST_INIT_SIZE; // 初始存储容量
return OK;
}
int DestroyList(SqList *L)
// 初始条件:顺序线性表L已存在。操作结果:销毁顺序线性表L
{
free((*L).elem);
(*L).elem=NULL;
(*L).length=0;
(*L).listsize=0;
return OK;
}
int ClearList(SqList *L)
// 初始条件:顺序线性表L已存在。操作结果:将L重置为空表
{
(*L).length=0;
return OK;
}
int ListEmpty(SqList L)
// 初始条件:顺序线性表L已存在。操作结果:若L为空表,则返回TRUE,否则返回FALSE
{
if(L.length==0)
return TRUE;
else
return FALSE;
}
int ListLength(SqList L)
// 初始条件:顺序线性表L已存在。操作结果:返回L中数据元素个数
{
return L.length;
}
int GetElem(SqList L,int i,ElemType *e)
// 初始条件:顺序线性表L已存在,1≤i≤ListLength(L) 。操作结果:用e返回L中第i个数据元素的值
{
if(i1||iL.length)
exit(ERROR);
*e=*(L.elem+i-1);
return OK;
}
int LocateElem(SqList L,ElemType e)
// 初始条件:顺序线性表L已存在。操作结果:返回L中第1个与e相等的数据元素的位序。若这样的数据元素不存在,则返回值为0。
{
ElemType *p;
int i=1; // i的初值为第1个元素的位序
p=L.elem; // p的初值为第1个元素的存储位置
while(i=L.length(*p++!=e))
++i;
if(i=L.length)
return i;
else
您可能关注的文档
最近下载
- 2026年开工第一课主题.ppt
- 普通纪念币防伪课件.pptx VIP
- ASTM A388A388M-2018钢锻件超声检验标准操作方法中文版.pdf VIP
- 艺考真题|2020年中传文史哲初试真题原卷放送(附答案).doc VIP
- 毛石混凝土挡土墙施工方案.docx
- 八年级英语上册全册课课练.doc VIP
- POEMS综合征课件完整版.ppt VIP
- NB-T11409-2023水电工程费用构成及概(估)算费用标准.docx VIP
- 2026年春季学期学校德育工作计划.docx VIP
- 深度解析(2026)《TBT 3474.2-2018机车车辆螺纹连接软管 第2部分:橡胶软管》.pptx VIP
原创力文档

文档评论(0)