#include <iostream>
using namespace std;
//顺序表
#define MaxSize 50
typedef struct {
int * data;
int length;
}SqlList;
//初始化
void InitList(SqlList &L){
L.data = new int[MaxSize];
L.length =0;
}
//求表长
int Length(SqlList L){
return L.length;
}
//按值查找操作
int LocateElem(SqlList L,int e){
int i;
for(i=0;i<L.length;i++){
if(L.data[i]==e){
return i+1; //找到了
}
}
return 0; //没找到
}
//按位查找操作
int GetElem(SqlList L,int i){
if(i < 0 || i > L.length){
return -1;
}
return L.data[i];
}
//插入操作
bool ListInsert(SqlList &L,int i,int e){
if(i <1 || i>L.length+1)
return false;
if(L.length>=MaxSize)
return false;
for(int j=L.length;j>=i;j--)
L.data[j] = L.data[j-1];
L.data[i-1] = e;
L.length++;
return true;
}
//删除操作 并且返回值
bool ListDelete(SqlList &L,int i,int &e){
if(i<1||i>L.length)
return false;
e=L.data[i-1]; //被删除元素给e
for(int j=i;j<L.length;j++){
L.data[j-1] = L.data[j];
}
L.length--;
}
//输出操作
void PrintList(SqlList L){
for(int i=0;i<L.length;i++){
cout << L.data[i] << " ";
}
cout << endl;
}
//销毁操作
void DestroyList(SqlList &L){
delete L.data;
L.length=0;
}
int main(){
SqlList l;
InitList(l);
cout << "初始化成功,测试初始化和长度为:"<< Length(l)<<endl;
ListInsert(l,1,1);
ListInsert(l,1,2);
ListInsert(l,1,3);
ListInsert(l,1,4);
cout << "表中元素为";
PrintList(l);
cout <<"插入成功,其中第1个数为:"<<l.data[0]<<",注意在外面是1开始在里面是0开始"<< endl;
cout << "按值查找1的位置为:"<<LocateElem(l,1)<<"其中0代表没有找到"<<endl;
int e;
ListDelete(l,1,e);
cout << "按值查找1的位置为:"<<LocateElem(l,1)<<"其中0代表没有找到,删除的元素为e="<<e<<endl;
cout << "按位查找"<<GetElem(l,1)<<endl;
DestroyList(l);
return 0;
}
还有好多要学啊