#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10
//定义类型 typedef int DataType;
//定义结构体 typedef struct { DataType list[MAXSIZE];//d定义DateType类型的数组
int size;//y用于记录数据的个数
} SeqList;
void InitList(SeqList *l);//初始化
int length(SeqList l);//线性表的长度
int InsertList(SeqList *l,int i,DataType x);//在第i个元素前插入0<=i<size
int DeleteList(SeqList *l,int i,DataType *x);//删除第i个元素
DataType GetElement(SeqList *l,int i);//得到第i个元素
int main(void) {
SeqList l;InitList(&l);int j;//定义循环变量 for(j=0;j<10;j++){InsertList(&l,j,j+1); }printf("取得%d\n",GetElement(&l,1));
int x=0; DeleteList(&l,9,&x); printf("%d\n",length(l));
int i;//定义循环变量 for(i=0;i
}
void InitList(SeqList* l){ l->size=0; }
int length(SeqList l){ return l.size;
}
int InsertList(SeqList * l,int i,DataType x){
//将i可以理解为将x插入i个元素前插入,也可以理解为将x插入list[i]中 if(i<0||i>MAXSIZE){ printf("输入的位置有误\n"); printf("插入失败\n"); return 0;}if(i==MAXSIZE){ printf("顺序表已满\n"); printf("插入失败\n"); return 0;}int j;//定义循环变量for(j=l->size;j>i;j--)l->list[j]=l->list[j-1]; l->list[i]=x;//将要插入的元素插入l->size++;//将书序表的长度加1 printf("插入成功\n");return 1;
}
int DeleteList(SeqList *l,int i,DataType *x){ if(i<0||i>=MAXSIZE){ printf("删除位置有误\n"); printf("删除失败\n"); return 0; }
if(l->size==0){ printf("表空,无法删除\n"); printf("删除失败\n"); return 0;}int j;//设置循环变量*x=l->list[i];for(int j=i;jsize-1;j++){ l->list[j]=l->list[j+1];} l->size--;printf("删除成功\n");return 1;
}
DataType GetElement(SeqList* l,int i){
return l->list[i];
}