首页 > 代码库 > c语言线性表
c语言线性表
c语言的线性表,还没有完善
1 #include<stdio.h> 2 #define MAXSIZE 100 //初始空间分配量 3 #define OK 1 4 #define ERROR 0 5 #define TRUE 1 6 #define FALSE 1 7 typedef int ElemType; //类型为int 8 typedef int Status;//函数的返回类型,此处为int 9 typedef struct 10 { 11 ElemType data[MAXSIZE]; 12 int length; 13 }SqList; 14 /*用e返回获取的函数值,当i超出线性表范围,则返回ERROR*/ 15 Status GetElem(SqList L,int i,ElemType *e) 16 { 17 if(L.length==0||i<1||i>L.length) 18 return ERROR; 19 *e=L.data[i-1]; 20 return OK; 21 } 22 Status LisrInsert(SqList *L,int i,ElemType e)//插入元素操作 23 { 24 int k; 25 if(L->length==MAXSIZE)//线性表已满 26 return ERROR; 27 if(i<1||i>L->length)//当i不在范围内 28 { 29 return ERROR; 30 } 31 if(i<=L->length)//插入的数据不在表尾 32 { 33 for(k=L->length-1;k>=i-1;k--)//将插入位置后的数据元素向后移一位 34 L->data[k+1]=L->data[k]; 35 } 36 L->data[i-1]=e;//将新元素插入 37 L->length++; 38 return OK; 39 } 40 /*结果,删除L的第i个元素,并用e返回值,L的长度减一*/ 41 Status ListDelete(SqList *L,int i,ElemType *e) 42 { 43 int k; 44 if(L->length==0)//线性表为空 45 return ERROR; 46 if(i<1||i>L->length)//删除位置不正确 47 return ERROR; 48 *e=L->data[i-1]; 49 if(i<L->length)//如果删除的不是最后的位置 50 { 51 for(k=i;k<L->length;k++)//将删除位置后继元素前移 52 L->data[k-1]=L->data[k]; 53 54 } 55 L->length--; 56 return OK; 57 58 } 59 /* 初始化顺序线性表 */ 60 void InitList(SqList *L) 61 { 62 L->length=0; 63 64 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。