线性表的顺序存储结构
线性表的顺序存储结构 先上代码: #include "Sqlist.h"//各个函数的具体实现 int Init_SqList(SqList* L){ for(int i = 0;i < MAXSIZE;i++) L->data[i] = 0; L->length = 0; return 0; } int Get_Elem(SqList* L,int i,ElemType* e){ if(L->length == 0 || i < 1 || (i > L->length)) return -1; *e = L->data[i-1]; return 0; } int Insert_Elem(SqList* L,int i,ElemType e){ int k = 0; if(L->length == MAXSIZE) return -1; if((i > (L->length) + 1) || i < 1) return -1; if(i <= L->length){ for(k = L->length -1;k >= i-1;k--) L->data[k+1] = L->data[k]; } L->data[i-1] = e; L->length++; return 0; } int Delete_Elem(SqList* L,int i,ElemType* e){ int k = 0; if(L->length == 0) return -1; if((i > L->length) || i < 1) return -1; *e = L->data[i-1]; if(i < L->length){ for(k = i;k < L->length;k++) L->data[k-1] = L->data[k]; } L->length--; return 0; } int Search_Elem(SqList* L,ElemType e){ int i = 0; if(L->length == 0) return -1; for (i = 0;i < L->length;i++){ if(e == L->data[i]) return i+1; } return -1; } int Modify_Elem(SqList* L,int i,ElemType e){ if(L->length == 0) return -1; if((i > L->length) || i < 1) return -1; if(i < L->length){ L->data[i-1] = e; } return 0; } #ifndef __SQLIST_H_#define __SQLIST_H_ #define MAXSIZE 20typedef int ElemType; typedef struct{ ElemType data[MAXSIZE]; int length; } SqList; int Init_SqList(SqList* L); int Get_Elem(SqList* L,int i,ElemType* e); int Insert_Elem(SqList* L,int i,ElemType e); int Delete_Elem(SqList* L,int i,ElemType* e); int Search_Elem(SqList* L,ElemType e); int Modify_Elem(SqList* L,int i,ElemType e); #endif // __SQLIST_H_ #include <stdio.