线性表的数组实现
#include<iostream>
const int max = 1000;
using namespace std;
typedef struct LNode *List;
struct LNode {
int Data[max];
int Last;
};
List MakeEmpty()
{
List PtrL;
PtrL = (List)malloc(sizeof(struct LNode));
PtrL->Last = -1;
return PtrL;
}
int Find(int X, List PrtL)
{
int i = 0;
while (i < PrtL->Last&&PrtL->Data[i] != X)
{
i++;
}
if (i > PrtL->Last)
return -1;
else
return i;
}
void Insert(int X, int i, List PrtL)
{
int j;
if (PrtL->Last == max - 1)
{
cout << "表满" << endl;
return;
}
if (i < 1 || i>PrtL->Last)
{
cout << "位置不合法" << endl;
return;
}
for (j = PrtL->Last; j >=i-1; j--)
{
PrtL->Data[j + 1] = PrtL->Data[j];
}
PrtL->Data[i-1] = X;
PrtL->Last++;
return;
}
void Delete(int i,List PrtL)
{
int j;
if (i<1 || i>PrtL->Last+1)
{
cout << "不存在这个元素" << endl;
return;
}
for (j = i; j <= PrtL->Last; j++)
{
PrtL->Data[j - 1] = PrtL->Data[j];
}
PrtL->Last--;
return;
}