#include <stdio.h>
#include <stdlib.h>
# define maxsize 5
typedef struct {
int data[maxsize];
int length;
}list;
void InitList(list &L){ //初始化
int i=0;
for(int i=0;i<maxsize;i++)
L.data[i]=0;
L.length=0;
}
void look(list &L){ //查看
for(int i=0;i<L.length;i++){
printf("L[%d]=%d\n",i,L.data[i]);
}
printf("length=%d\n",L.length);
}
bool Insert(list &L,int i,int x){ // 插入元素
if(i<1||i>L.length+1){
printf("插入不合法");
return 0;
}
for(int j=L.length;j>i-1;j--){
L.data[j]=L.data[j-1];
}
L.data[i-1]=x;
L.length++;
return true;
}
int Delete (list &L,int i) { //删除元素
if(i<1||i>L.length-1){
printf("删除不合法");
return 0;
}
int a;
a=L.data[i-1];
for(int j=i-1;j<L.length-1;j++)
L.data[j]=L.data[j+1];
L.length--;
printf("删除的元素为%d\n",a);
return a;
}
bool alter1(list &L,int i,int e){ //根据位序改
if(i<1||i>L.length-1){
printf("该元素不存在");
return 0; }
L.data[i-1]=e;
}
bool alter2(list &L,int i,int a){ //根据元素的值改
int n=0;
for(int j=0;j<L.length;j++) {
if(L.data[j]==i){
L.data[j]=a;
n++;
}
}
if(n==0){
printf("未查到该元素,更改失败\n");
return 0;
}else {
printf("已更改\n");
return true;
}
}
int seek(list &L,int i){ //根据位序查元素的值
if(i<1||i>L.length-1){
printf("该元素不存在");
return 0;
}
printf("第%d个元素为%d\n",i,L.data[i-1]);
return L.data[i-1];
}
int seek2(list &L,int a){
int n=0; //根据元素的值查位序
for(int j=0;j<L.length;j++) {
if(L.data[j]==a){
printf("%d在第%d位",a,j+1);
return j+1;
}
}
printf("未查找到该元素");
return 0;
}
int main(){
list L;
InitList (L);
Insert (L,1,1);
Insert(L,2,2);
Insert (L,3,3);
Insert (L,4,4);
look(L);
Insert (L,1,5);
look(L);
int e= Delete(L,4);
look(L);
alter1(L,1,9);
look(L);
alter2(L,6,8);
look(L);
int seeker= seek(L,1) ;
int index=seek2(L,4);
}