//线性表的单链表存储结构
typedef struct Node
{
ElemType data;
struct Node* next;
} Node;
typedef struct Node* LinkList;
//获取链表第i个数据
Status GetElem(LinkList L, int i, ElemType* e)
{
int j;
LinkList p;
p = L->next;
j = 1;
while (p && j < i)
{
p = p->next;
++j;
}
if (!p || j > 1)
return ERROR;
*e = p->data;
return OK;
}
//单链表的插入
malloc()的作用是生成一个新的结点,其类型与Node是一样的,其实质就是在内存中找一小块空地,准备用来存放e数据s的结点。
Status ListInsert(LinkList* L, int i, ElemType e)
{
int j;
LinkList p, s;
p = *L;
j = 1;
while (p && j < i)
{
p = p->next;
++j;
}
if (!p || j < 1)
{
p = p->next;
++j;
}
if (!p || j > i)