#include <stdio.h>
#include <stdlib.h>
#define MaxSize 100
#define ElemType int
typedef struct{
ElemType *data;
int length;
}SqList;
void CreateList(SqList *L,int n){//初始化并创建顺序表
L->data=(ElemType*)malloc(MaxSize*sizeof(ElemType));
if(!L->data){
printf("初始化顺序表失败");
}
printf("请输入%d个数据",n);
for(int i=0;i<n;i++){
scanf("%d",&L->data[i]);
}
L->length=n;
}
void PrintList(SqList L){//遍历顺序表
for(int i=0;i<L.length;i++){
printf("%5d",L.data[i]);
}
}
void InsertList(SqList *L,int i,ElemType e){//在第i个位置上插入数据
if(i<1 || i>L->length+1)
printf("插入的数据异常");
if(L->length>=MaxSize)
printf("插入的数据异常");
for(int j=L->length;j>=i;j--){
L->data[j]=L->data[j-1];
}
L->data[i-1]=e;
L->length++;
}
void DeleteList(SqList *L,int i){//在第i个位置上删除数据
if(i<1 || i>L->length){
printf("删除的数据异常");
}
for(int j=i;j<L->length;j++){
L->data[j-1]=L->data[j];
}
L->length--;
}
int SearchElem(SqList L,ElemType e){//查找第i个位置元素的值
for(int i=0;i<L.length;i++){
if(L.data[i]==e){
return i+1;
}
}
return 0;
}
int main()
{
SqList L;
CreateList(&L,5);
PrintList(L);
printf("\n");
InsertList(&L,3,10);
printf("插入后的顺序表:");
PrintList(L);
printf("\n");
DeleteList(&L,4);
printf("删除后的顺序表:");
PrintList(L);
printf("\n");
printf("你查找的数据在第%d个位置",SearchElem(L,10));
}
C语言顺序表的操作
于 2022-04-01 20:21:43 首次发布