#include <stdio.h> #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 typedef int Status; #define LISTINCREMENT 10 #define LISTSIZE 100 typedef struct { int data[LISTSIZE]; int length; }Sqlist; Status ListInsert(Sqlist &L ,int i ,int e); int LocateElem(Sqlist L,int e); void print (Sqlist L); Status Delete (Sqlist &L ,int i ,int &e); void main(){ Sqlist L={ {0,1,8,5,0,8,4,3,1,0,2,8}, 11}; printf("原来的数组"); print (L); ListInsert(L,3,1028); printf("\n插入后的数组"); print(L); int e=8; printf("\n数字8所在位置:"); int location=LocateElem(L,e); printf("%d",location); int r=0; Delete(L,4,r); printf("\n删除的元素是:"); printf("%d",r); printf("\n删除后的数组:"); print(L); } Status ListInsert(Sqlist &L ,int i ,int e){ //2.4 插入 //在顺序表的L中的第i个位置插入新元素e if(i<1||i>L.length+1||L.length==LISTSIZE-1) return ERROR; for(int index=L.length;index>=i;index--) { L.data[index+1]=L.data[index]; } L.data[i]=e; L.length++; return OK; } int LocateElem(Sqlist L,int e){ //查找 for(int i=1;i<=L.length;i++){ if(e==L.data[i]){ return i; } } return ERROR; } Status Delete (Sqlist &L ,int i ,int &e){ //删除 if(i<1||i>L.length)return ERROR; e=L.data[i]; for (int index=i;index<L.length;index++){ L.data[index]=L.data[index+1]; } L.length--; return OK; } void print (Sqlist L) { //打印数组 for(int i=1;i<=L.length;i++) { printf("%d ",L.data[i]); } }