
{
student *p=new student,*p1, *p2
cin>>p->num>>p->name>>p->eng>>p->math>>p->c
if (head == NULL) // 检查头指针是否为空, 是直接赋值
head = p
else// 否, 则遍历链表找到合适的位置插入新节点
{
p1 = head
while(p1!=NULL)
{
p2 = p1 // 保存当前节点
p1=p1->next // 进入下个节点
}
p1=p // 存储新节点
p2->next=p1 // 将新节点赋值到链尾
}
return head
}
把S结点插入到链表末尾,结果应该是这样的
所要做的工作就是,把F值所在的结点的next指向s结点,并且把s结点的next指向NULL
所以,有以下方法:
1>对应B选项
把s结点的next指向null即:s->next = '\0'
把p指针指向F所在的结点,也就是p结点的next指针所指向的结点:p = p->next
把F所在的结点的next指向s结点;
2>对应C选项
p指针指向F所在的结点:p = p->next
s结点的next指针指向p->next,也就是NULL:s->next = p->next
把F所在的结点的next指向s结点;
3>对应选项D
这个选项其实和C选项采用的方法是一样的,只不过取值的方式不一样,C选项用指针取值的,而D选项首先把指针的所指向的地址给拿出来,在对其取值,相当于普通变量。所以C选项用的是'->'而D选项用的是'.'
for(int i=0i<pos-1i++){
if(ptr->next==NULL)
{
ptr->next=insert
return head
}
else
{
ptr=ptr->next
}
}
insert->next=ptr->next
ptr->next=insert
return head
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)