线性表的顺序表示(C语言) | 您所在的位置:网站首页 › C语言elemtype › 线性表的顺序表示(C语言) |
线性表的顺序表示:
#define LIST_INIT_SIZE 100 定义一个线性表类型 #define LISTINCREMENT 10 typedef struct { ElemType *elem; 基址 int length; 元素的长度 int listsize;当前的存储容量 }Sqlist;
void InitList_Sq(Sqlist &L) 初始化操作 { L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem) return overflow; L.length=0; L.listsize=LIST_INIT_SIZE; return ok; }
void DestroyList_Sq(Sqlist &L) 销毁线性表 { free(L.elem); L.elem=NULL; L.length=0; L.listsize=0; return ok; }
void ClearList(Sqlist L) 清零操作 { L.length=0; return ok; }
void ListEmpty(Sqlist L) 判空操作 { if(L.length=0) return True; else return False; }
int ListLength(Sqlist L) 输出表的长度,数据元素个数 { return L.length; }
void GetElem(Sqlist &L,int i,ElemType &e) 得到第I 个元素的数据元素的值 { if(iL.length) return error; e=*(L.elem+i-1); return ok; }
int LocateElem(Sqlist &L,ElemType e,void (*compare)(ElemType,ElemType)) 查找与E相等的元素的位置 { ElemType *p; i=1; while(i=q;--p) *(p+1)=*p; *q=e; ++L.length; return ok; }
void DeleteElem(Sqlist &L,int i,ElemType e) 删除第I个元素 { if(i=L.length) return FALSE; p=L.elem+i-1; q=L.elem+L.length-1; e=*p; for(p;p |
CopyRight 2018-2019 实验室设备网 版权所有 |