@H_
404_0@#include<st
dio.h>
typedef int ElemType;
typedef int Status;
#define Max 100
#define ERROR 0
#define OVERFLOW -2
#define OK 1
//存储结构
typedef struct {
ElemType elem[Max];
int length;
}
sqlist;
sqlist L;
//初始化
void Init
sqlist(int size){
int i;
int x;
L.length = size;
for(i=0;i<size;i++){
printf("请输入顺序表中第%d的元素:",i+1);
scanf("%d",&x);
L.elem[i] = x;
}
}
//顺序表长度
Status GetLength(
sqlist &L){
return L.length;
}
//遍历顺序表
void Print
sqlist(
sqlist &L){
printf("顺序表数据如下:\n");
for(int i=0;i<L.length;i++){
printf("%4d",L.elem[i]);
}
printf("\n");
}
//在顺序表中插入元素
Status Insert
sqlist(
sqlist &L,int i,ElemType e){
//判断i的位置是否合法
if(i<1 || i>L.length)
return ERROR;
//
if(L.length > Max)
return OVERFLOW;
//插入位置i后的数据右移
for(int j = L.length;j >= i;j--){
L.elem[j] = L.elem[j-1];
}
L.elem[j] = e;
//表长加1
L.length++;
return OK;
}
//在顺序表中
删除元素
Status Delete
sqlist(
sqlist &L,int i){
//判断i的位置是否合法
if(i<1 || i>L.length)
return ERROR;
//
删除位置之后的数据整体左移
for(int j=i;j<=L.length;j++){
L.elem[j-1] = L.elem[j];
}
L.length--;
return OK;
}
//在顺序表中查找i的值
Status Locate
sqlist(
sqlist &L,int i){
return L.elem[i-1];
}
//在顺序表中查找数据为x的位置
Status Locate
sqlist_2(
sqlist &L,ElemType e){
for(int i=0;i<=L.length;i++){
if(L.elem[i] == e){
return i;
}
}
return -1;
}
void main(){
int i,j,h,k;
int x,y;
printf("请输入你顺序表的长度:");
scanf("%d",&i);
Init
sqlist(i);
Print
sqlist(L);
printf("顺序表的长度:%d",GetLength(L));
printf("\n");
printf("请输入你要插入的数据的位置:\n");
scanf("%d",&j);
printf("再输入你要插入的数据:\n");
scanf("%d",&x);
Insert
sqlist(L,x);
printf("插入数据之后的顺序表如下:\n");
Print
sqlist(L);
printf("插入数据之后顺序表的长度:%d",GetLength(L));
printf("\n");
printf("请输入你要
删除的数据的位置:\n");
scanf("%d",&h);
Delete
sqlist(L,h);
printf("
删除数据之后的顺序表如下:\n");
Print
sqlist(L);
printf("\n");
printf("请输入你要查找数据的位置:\n");
scanf("%d",&k);
int value = Locate
sqlist(L,k);
printf("查找的值为:%d\n",value);
printf("请输入你要查找数据的值:\n");
scanf("%d",&y);
int lag = Locate
sqlist_2(L,y);
printf("数据%d的位置为:%d\n",y,lag);
printf("\n");
}
By Mr.Z