线性表中顺序表C++代码实现
#include<iostream>
using namespace std;
#define MaxSize 50
typedef int ElemType;
typedef struct{
ElemType *data;
int length;
}SqList;
int CreatList(SqList &L) {
L.data=new ElemType[MaxSize];
if (!L.data)
exit(-1);
cout<<"Please enter the number of elements in the initialization table:";
int n;
cin>>n;
cout<<"creat SqList:";
for(int i = 0; i < n; i++){
cin>>L.data[i];
}
L.length = n;
return 0;
}
bool ListInsert(SqList &L,int i,ElemType 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(SqList &L,int i,ElemType &e){
if(i<1||i>L.length+1)
return false;
e=L.data[i-1];
for(int j=i;j<L.length;j++)
L.data[j-1]=L.data[j];
L.length--;
return true;
}
int LocateElem(SqList L,ElemType e){
int i;
for(i=0;i<L.length;i++)
if(L.data[i]==e)
return i+1;
return 0;
}
void OutPut(SqList L){
int i=0;
while(L.length != i){
cout<<L.data[i]<<" ";
i++;
}
cout<<endl;
}
int main(){
SqList A;
CreatList(A);
ListInsert(A,3,9);
OutPut(A);
int e;
ListDelete(A,1,e);
OutPut(A);
LocateElem(A,12);
return 0;
}