#include#define MaxSize 10 typedef struct { int data[MaxSize]; int length; } SqList; typedef void Status; void Getprintf(SqList L); //查询数组 void InitList(SqList* L);//静态初始化 void GetElem(SqList L, int i, int* p); //查询某结点数据 void ListInsert(SqList* L, int i, int data);//插入数据 void ListDelete(SqList* L, int i, int* p);//删除数组中某数据 int main() { SqList L; InitList(&L);//静态初始化 int p; GetElem(L, 2, &p);//查询数值 printf("查询某节点数值为%dn", p); Getprintf(L); ListInsert(&L, 7, 20); printf("插入之后的新数据为:n"); Getprintf(L); ListDelete(&L, 2, &p); printf("删除之后的新数据为:n"); Getprintf(L); } void Getprintf(SqList L) { for (int i = 0; i < L.length; ++i) { printf("L.data[%d]=%dn", i, L.data[i]); } } void InitList(SqList* L) //静态初始化 { int i = 0; for (i; i < MaxSize; ++i) { L->data[i] = 100 + i; } L->length = 9; } void GetElem(SqList L, int i, int* p)//查询数值 { if (L.length == 0 || i<1 || i>L.length) printf("抛出异常"); else *p = L.data[i - 1]; } void ListInsert(SqList* L, int i, int data)//插入数值 { int k; if (L->length == MaxSize) printf("数值已经上限"); else if (i<1 || i>L->length) printf("数值插入错误"); else if (i <= L->length) { for (k = 0; k <= L->length - i + 1; k++) L->data[L->length - k] = L->data[L->length - k - 1];//小心赋值超界 L->data[i - 1] = data; L->length = L->length + 1; } } void ListDelete(SqList* L, int i, int* p)//删除数值 { if (i<0 || i>L->length) printf("删除数组位置越界"); else if (i == L->length) { *p = L->data[i - 1]; L->data[i - 1] = 0; L->length = L->length - 1; } else { *p = L->data[i - 1]; for (; i < L->length; i++) { L->data[i - 1] = L->data[i]; } L->length = L->length - 1; } }



