一.插入
插入i位置是需要找到i-1的位置(为了能够连接前后节点)此时可以用到while循环,条件则为
1.定义一个地址p指向L,j=0;
2.保证p为真(i小于已有节点),j<i-1,且每次p向后移动一个(保证p指向p-1的位置);
3.生成新节点s输入要插入的数据;
4.将s->next指向p->next,让后将p->next指向s;
代码:
status ListInsert(LinkList &L,int i,ElemType e)
{
LNode *p=L;
int j=0;
while(p&&j<i-1)
{
p=p->next;
j++;
}
if(!p||j>i-1) return ERROR;
LNode *s=new LNode;
s->data=e;
s->next=p->next;
p->next=s;
return OK;
其中!p直p不为空,j>i-1为保证i>.0.
二.显示
1.链表无论何时都需保证头指针不变,以便找到后期操作,所以我们需要定义P从头指针不断移动读取数据。
2.通过循环不断输出数据,同时使p不断向后移动直到p到最后一个节点(p为空)。
代码:
status show(LinkList &L)
{
LNode *p;
p=L->next;
while(p)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}