这段时间状态非常不好,乱七八糟的事情搞得心烦意乱,得开始静下心了调整状态了,然而大心课被点名了,有点自闭
#include <stdio.h> #define MaxSize 100 typedef int ElemType; typedef struct { ElemType elem[MaxSize]; int last;//顺序表最后一个元素的位置 }SqList; void InitList(SqList *L) { L->last = -1; } int isEmpty(SqList *L) { if (L->last==-1) return 1; else return 0; } int CreateList(SqList *L, ElemType a[], int n) { if (n>MaxSize) return 0; for (int i = 0; i < n; i++) L->elem[i] = a[i]; L->last = n-1; } int Get(SqList *L, int n, ElemType *ptr)//找到序号为n的元素给ptr { if (n<1||n>L->last+1) return 0; *ptr = L->elem[n-1]; return 1; } int Locate(SqList *L, ElemType x)//找到x在顺序表中的位置 { for (int i = 0; i <= L->last; i++) if (L->elem[i]==x) return i+1; return 0; } void printList(SqList *L) { for (int i = 0; i <= L->last; i++) printf("%d ", L->elem[i]); } int Insert(SqList *L,int n,ElemType x) //注意判断顺序表是否满,插入位置是否正确,然后再进行操作 { if (L->last+1>=MaxSize) return 0; else if (n<1||n>L->last+2) return 0; for (int i = L->last+1; i >= n; i--) L->elem[i] = L->elem[i-1]; L->elem[n-1] = x; L->last++; return 1; } int Delete(SqList *L, int n) // 注意判断条件,参考insert { if (n<1||n>L->last+1) return 0; for (int i = n-1; i < L->last; i++) L->elem[i] = L->elem[i+1]; L->last--; return 1; } int main() { SqList L; ElemType a[10]; for (int i = 0; i < 10; i++) scanf("%d", &a[i]); InitList(&L); CreateList(&L, a, 10); printList(&L); Insert(&L, 5, 11); printf(" "); printList(&L); Delete(&L, 8); printf(" "); printList(&L); return 0; }