#include<iostream>
#define MAXSIZE 100
#define Elemtype int
using namespace std;
//存储结构
typedef struct
{
Elemtype *elem;
int length;
}Sqlist;
//初始化
int Initlist(Sqlist &L){
L.elem=new Elemtype[MAXSIZE];
if(!L.elem) return 0;
L.length=0;
return 1;
}
//取值
int Getelem(Sqlist L,int i,Elemtype &e){
if(i<1||i>L.length) return 0;
e=L.elem[i-1];
return 1;
}
//查找
int Locateelem(Sqlist L,Elemtype e){
int i;
for(i=0;i<L.length;i++){
if(L.elem[i]==e) return i+1;
}
return 0;
}
//插入
int Listinsert(Sqlist &L,int i,Elemtype e){
if((i<1)||(i>L.length+1)) return 0;
if(L.length==MAXSIZE) return 0;
int j;
for(j=L.length-1;j>=i-1;j--){
L.elem[j+1]=L.elem[j];
L.elem[i-1]=e;
++L.length;
}
return 1;
}
//删除
int Listdelete(Sqlist &L,int i){
if((i<1)||(i>L.length+1)) return 0;
for(int j=i;j<=L.length-1;j++){
L.elem[j-1]=L.elem[j];
--L.length;
}
return 1;
}
//遍历
void printlist(Sqlist L){
int k=0;
for(k;k<L.length;k++){
cout<<L.elem[k]<<" ";
}
}
//main
int main(){
Elemtype e;
Sqlist L;
Initlist(L);
int i=1;
//创建顺序表
for(int k=0;k<4;k++){
L.elem[k]=k;
Getelem(L,i,e);
i++;
L.length++;
}
cout<<"查找"<<endl;
cout<<Locateelem(L,2)<<endl;
Listinsert(L,5,5);
Listdelete(L,5);
cout<<"遍历"<<endl;
printlist(L);
return 0;
}
2.4.2——顺序表中基本操作的实现
最新推荐文章于 2024-10-09 17:48:02 发布