#include<bits/stdc++.h>
using namespace std;
#define InitSize 5
typedef struct SeqList{
int* data; //动态分配的数组指针
int length; //数组当前个数
int MaxSize; //数组的最大容量
}List;
//动态分配的初始化
void InitList(List* L){
L->data=new int[InitSize]; //分配存储空间
L->length=0; //顺序表初始长度为0
L->MaxSize=InitSize; //初始存储容量
}
//插入
void ListInsert(List* L,int i,int e){
if(i<1||i>L->length+1)
return;
if(L->length==L->MaxSize){
cout<<"Insert Error:SeqList Already Full!"<<endl;
return;
}
for(int j=L->length;j>=i;j--)
L->data[j]=L->data[j-1];
L->data[i-1]=e;
L->length++;
}
//删除
void ListDelete(List* L,int i){
if(i<1||i>L->length)
return;
for(int j=i;j<L->length;j++)
L->data[j-1]=L->data[j];
L->length--;
}
//按值查找
void LocateElem(List* L,int e){
for(int i=0;i<L->length;i++){
if(L->data[i]==e){
cout<<"Element "<<e<<" Found!"<<endl;
return;
}
}
cout<<"Search Error:Element "<<e<<" not Found!"<<endl;
}
//打印
void PrintList(List* L){
for(int i=0;i<L->length;i++)
cout<<L->data[i]<<" ";
cout<<endl;
}
int main(){
List* L=new List;
InitList(L);
ListInsert(L,1,1);
ListInsert(L,2,2);
ListInsert(L,3,3);
ListInsert(L,4,4);
ListInsert(L,5,5);
PrintList(L);
ListInsert(L,2,6);
ListDelete(L,2);
PrintList(L);
LocateElem(L,4);
LocateElem(L,6);
delete L;
return 0;
}
标签:顺序,线性表,int,void,List,动态分配,length,data
From: https://www.cnblogs.com/b1ackstar/p/18291081