#include<iostream>
using namespace std;
#define MAXSIZE 50
typedef struct
{
int *data;
int length;
}sqList;
void Init(sqList &L)
{
L.data = new int[MAXSIZE];
L.length = 0;
}
void Insert_sqList(sqList &L,int i,int e)
{
if(i < 1 && i > MAXSIZE && L.length = MAXSIZE - 1)
return;
for(int j = L.length - 1; j > i; j++)
{
L.data[j+1] = L.data[j];
}
L.data[i-1] = e;
L.length++;
}
void Traverse(sqList L)
{
for(int i = 0;i < L.length; i++)
{
cout << L.data[i] << " ";
}
}
int main ()
{
sqList L;
Init(L);
for(int i = 1; i < 5; i++)
{
Insert_sqList(L,i,i);
}
Traverse(L);
}
主要写了初始化、插入和遍历,其余操作稍加修改可以得到。
注:初始化分配了MAXSIZE个连续的空间,所以在之后的使用中把连续的空间看作是数组,用法和数组相同。