查找操作
插入操作
删除操作
小结
参考附录模拟代码:
#include <iostream>
const int maxn=200;
//顺序表
typedef struct{//定义静态类型
int num[maxn];// 装数数组
int len;//记录长度
}sqlist;
typedef struct{//定义动态类型
int *num;
int len;
}sqlist;
sqlist l;//定义顺序表
l.data=new int[maxn];//动态分配内存
//初始化
void init_sqlist(sqlist &l){//通过引用参数,对顺序表进行操作
int l.num=new int[maxn];//开辟空间
if(!l.num) cout<<"内存分配失败!"<<endl;//非法处理
l.len=0;//初始长度
}
//求表长
int getLength(sqlist l){
return l.len;
}
//销毁表
void destroy(sqlist &l){
if(l.num) delete l.num;//判断存在就删除
}
//清空表
void clear(sqlist &l){
l.len=0;
}
//按下标获取元素
int getValue(sqlist l,int x){
//非法处理
if(x<1||x>l.len) return 0;
// 返回值
else return l.num[i-1];
}
//按值获取下标
int getValue(sqlist l,int e){
for(int i=0;i<l.len;i++)
if(l.num[i]==e) return i-1;
return 0;
}
//判断是否为空
bool isEmpty(sqlist l){
if(l.len==0) return false;
else return true;
}
//插入到指定下标
int insert(sqlist &l,int x,int e){
//非法处理
if(i<1||i>l.len+1||l.len-1==maxn)//i插入位置是l.len-1,可以插入最后一个
return 0;
//移动
for(int i=l.len-1;i<=x-1;i--)
l.num[i+1]=l.num[i];
//插入+更新
l.num[i]=e;
l.len++;
return 1;
}
//删除指定位置
int del(sqlist &l,int x){
//非法处理
if(l.len==0||i<1||i>l.len+1)
return -1;
//移动
for(int i=x;i<l.len;i++)
l.num[i-1]=l.num[i];
//更新
l.len--;
return 0;
}
int main(){
return 0;
}