#include <stdio.h>
/*链表的数组实现*/
#define max 20
typedef struct LNode* list;
struct LNode {
int data[10];/*假设有10个*/
int last;/*从0开始,是数组下标,不是第几个位置*/
};
/*建立空表*/
list make_empty(void)
{
list ptrL;
ptrL = malloc(sizeof(struct LNode));
ptrL->last = -1;
return ptrL;
}
/*查找*/
int find(list ptrL, int x)
{
int i = 0;
while (i <= ptrL->last && ptrL->data[i] != x)
i++;
if (i > ptrL->last)
return NULL;
else
return i;
}
/*插入在a[i-1]前面*/
void insert(int x, list ptrl, int i)
{
if (ptrl->last == max - 1)
{
printf("表满\n");
return;
}
if (i<1 || i>(ptrl->last + 2))/*画图就明白了*/
{
printf("位置不合法\n");
return;
}
int j;
for (j = ptrl->last; j >= i - 1; j--)
ptrl->data[j + 1] = ptrl->data[j];
ptrl->data[i - 1] = x;
ptrl->last++;
return;
}
/*删除第i个元素*/
void Delete(list ptrl, int i)
{
if (ptrl->last == -1)
{
printf("表空\n");
return;
}
if (i<1 || i>(ptrl->last + 1))
{
printf("位置不存在\n");
return;
}
for (int j = i - 1; j < (ptrl->last + 1); j++)
ptrl->data[j] = ptrl->data[j + 1];
ptrl->last--;
return;
}#include <stdio.h>
/*链表的数组实现*/
#define max 20
t