#include<stdio.h>
#define Maxsize 10
//主要用于静态的顺序表的创销增删改查的实现
//结构体
typedef struct SqList{
int data[Maxsize];
int length;
}seqList;
//初始化线性表同样也是销毁线性表的方法(将length设为0,无法进行增删改查)
void InitList(seqList &L){
L.length = 0;
}
//增加元素(插入一个元素)
int InsertList(seqList &L,int index,int num){
if(index>L.length+1||index<1)return 0;//插入的位置不对
if(L.length>Maxsize)return 0;//顺序表满了,无法再次加入
for(int i = L.length;i>=index;i--){
L.data[i] = L.data[i-1];
}
L.data[index-1] = num;
L.length++;
return 1;
}
//删除一个元素
int Delete(seqList &L,int index,int &e){
if(index<1||index>Maxsize)return 0;
if(L.length<1)return 0;//顺序表里没有元素无法删除
e = L.data[index-1];//将删除的元素保存下来
for(int i = index-1;i<L.length;i++){//L.data[L.length]=NULL,向前移动后L.data[L.length-1]=NULL是合理的
L.data[i] = L.data[i+1];
}
L.length--;
return 1;
}
//按值查找
int LocateElem(seqList L,int e){
for (int i = 0; i < L.length; ++i) {
if(L.data[i]==e) return i+1;
}
return -1;
}
//按位查找
int GetElem(seqList L,int index ){
return L.data[index--];
}
//输出顺序表里的值
void PrintList(seqList l){
for(int i = 0;i<l.length;i++){
printf("%d ",l.data[i]);
}
}
int main(){
seqList l;
int a;
InitList(l);
printf("输入要输入的数据个数:");
scanf("%d",&a);
for(int i = 1;i<=a;i++){
int tempNum;
scanf("%d",&tempNum);
InsertList(l,i,tempNum);
}
PrintList(l);
printf("\n%d", LocateElem(l,2));
return 0;
}