2.插入一个结点的操作
(1)在第i个元素前插入一个结点
Insertlist(Linklist L, int i, ElemType e)
{
cin>>e;//键入要插入的值
p=L;j=0;
while(p&&j<i-1)
{
p=p->next;
j++
}
if(!p||j>i-1) return error;
else
{
q=(Lnode*)malloc(sizeof(Lnode));//申请一个新结点
q->data=e;q->next=NULL;//初始化
q->next=p->next; p->next=q;//插入
}
}
(2)在值为x的元素之前插入元素e
Insertlist(Linklist L, int x, ElemType e)
{
cin>>e;//键入要插入的值
while(!p&&p->next->data!=x)
{
p=p->next;
}
if(!p)return error;
else
{
q=(Lnode*)malloc(sizeof(Lnode));//申请一个新结点
q->data=e;q->next=NULL;//初始化
q->next=p->next; p->next=q;//插入
}
}
3.删除一个结点
Deletelist(Linklist head,int i, ElemType e)
{
p=head;j=0;
while(j<i-1)
{
p=p->next;
j++;
}
q=(Lnode*)malloc(sizeof(Lnode));//申请一个新结点
q=p->next;
e=q->data;
p->next=q->next;
free(q);
}
4.清空线性表
Clearlist(Linklist l)
{
while(L->next)
{
p=L->next;L->next=p->next;
free(p);
}
}