
#include<stdio.h>
#include<stdlib.h>
class point //节点类
{
public:
int a //节点值
point *next//next指针
}
void newlast(point *&p,int i) //在*p所指的链表的最后新建一个值为i的节点
{
point *q,*o
q=p
while(q->next)
{
q=q->next
}
printf("%d\n",q->a)
o=(point *)malloc(sizeof(point))
o->a=i
q->next=o
o->next=NULL //结束标记
}
void show(point *p)//输出指针p所指链表
{
point *q
q=p
while(q)
{
printf("%d\t",q->a)
q=q->next
}
printf("\n")
}
int main()
{
point b1,b2,b3
point *p
b1.a=1
b2.a=2
b3.a=3
p=&b1
b1.next=&b2
b2.next=&b3
b3.next=NULL //结束标记
show(p)
newlast(p,4)
show(p)
return 0
}
把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选项用的是'.'
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)