“线性表(Linear List)”:由同类型数据元素构成有序序列的线性结构
表中元素个数称为线性表的长度
>线性表没有元素时,称为空表
表起始位置称表头,表结束位置称表尾
#include<stdio.h>
#include<malloc.h>
constexpr auto maxlenth = 1000;
typedef struct LNode *List;
struct LNode
{
int date[maxlenth];
int last;
};
struct LNode L;
List ptrl;
//初始化
List MakeEmpty()
{
List ptrl;
ptrl = (List)malloc(sizeof(L));
ptrl->last = -1;
return ptrl;
}
//查找
int find(int x,List ptrl)
{
int i = 0;
while (i <= ptrl->last && ptrl->date[i] != x)
{
i++;
}
if (i > ptrl->last) return -1;
else return i;
}
//插入i索引
void insert(int x, int i, List ptrl)
{
int j;
if (ptrl->last == maxlenth-1)
{
printf("表满\n");
return;
}
if (i<0 || i>ptrl->last + 1)
{
printf("位置不合法\n");
return;
}
for (j = ptrl->last+1; j >= i; j--)
ptrl->date[j] = ptrl->date[j - 1];
ptrl->date[i] = x;
ptrl->last++;
return;
}
//删除
void Delete(int i,List ptrl)
{
if (i<0 || i>ptrl->last )
{
printf("不存在第%d个元素\n",i);
return;
}
for (i; i < ptrl->last; i++)
ptrl->date[i] = ptrl->date[i + 1];
ptrl->last--;
return;
}
int main()
{
List ptrl = MakeEmpty();
insert(4, 0, ptrl);
insert(3, 0, ptrl);
insert(2, 0, ptrl);
insert(1, 0, ptrl);
Delete(0, ptrl);
printf("%d\n", ptrl->date[0]);
printf("%d\n", ptrl->date[1]);
printf("%d\n", ptrl->date[2]);
}
萌新一枚,有错误请指正。