归并La和Lb得到新的线性表Lc-(二).docVIP

  • 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

文档评论(0)

1亿VIP精品文档

相关文档