#include <iostream>
using namespace std;
#define N 10
typedef struct LNode{
int *data;
int length;
}Node;
void Init_Node(Node &s){ //初始化顺序表
//分配空间
s.data = new int[N];
//初始化顺序表长度 长度为0表示顺序表内没有元素
s.length = 0;
}
int insert_Node(Node &s,int n,int key){ //顺序表的插入操作
if(s.length == N) //顺序表满,插入失败
return -1;
int i;
for(i=s.length; i>=n; i--){
s.data[i]=s.data[i-1];
}
s.data[i] = key;
s.length++;
return 1;
}
int delet_Node(Node &s,int n){ //顺序表的删除操作(按位置删除)
if(s.length == 0) //顺序表空,删除失败
return -1;
for(int i=n;i<s.length;i++){
s.data[i-1]=s.data[i];
}
s.length--;
}
int get_elem(Node s,int n){ //顺序表的取值操作(按位置取)
if(s.length==0 || n>s.length) //表空或者位置大于表长,取值失败
return -1;
return s.data[n-1];
}
int search_Node(Node s, int key){ //查找
if(s.length == 0)
return -1;
for(int i=0;i<s.length;i++){
if(s.data[i] == key)
return i;
}
}
void show(Node s){ //顺序表的输出
for(int i=0;i<s.length;i++){
cout<<s.data[i]<<" ";
}
}
int main(){
Node s;
//测试代码
Init_Node(s);
insert_Node(s,1,1);
insert_Node(s,2,2);
insert_Node(s,3,3);
insert_Node(s,4,4);
insert_Node(s,5,5);
delet_Node(s,1);
cout<<get_elem(s,1)<<endl;
cout<<search_Node(s,2)<<endl;
show(s);
return 0;
}
运行结果