1.顺序表的存储类型
#include <bits/stdc++.h>
using namespace std;
#define MaxSize 50
typedef int ElemType;
typedef struct {
ElemType *data;
int length;
}SqList;
2.顺序表的一些基本操作
/// 将一个元素差入到顺序表的第i个位置之前。
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 += 1;
return true;
}
///将顺序表第i个元素删除,并且返回给e
bool ListDelete(SqList &L, int i, ElemType &e)
{
if(1>i || i>L.length)
return false;
e = L.data[i-1];
for(int j=i;j<L.length;++j)
L.data[j-1] = L.data[j];
L.length -= 1;
return true;
}
/// 按值查找。查找元素e在列表中的的位置
int LocateElem(SqList L, ElemType e)
{
int i = 0;
for(;i<L.length;++i)
if(L.data[i] == e)
return i+1;
return 0;
}
/// 将顺序表内的东西全部输出(按顺序)
void ListPrint(SqList L)
{
for(int i=0;i<L.length;++i)
{
cout<<L.data[i]<<' ';
}
cout<<'\n';
}
注:参考资料《王道考研-数据结构》。