在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个结点s,则执行( )。
A. s->next=p->next; p->next=s;
B. p->next=s->next;s->next=p;
C. q->next=s;s->next=p;
D. p->next=s;s->next=q;
答案有问题,应该遵守先连后断:s->next=p; q->next=s;
快乐小土狗 回复 执笔: 这道题p,q都有指针对应,不会存在断链问题
p,q都有指针对应,不会存在断链问题
p、q都是结构体指针变量,当p、q指向某个结点的时候,意味着结点的首地址赋予了p、q指针变量,也就是说这两个结点的地址是已知的,所以可以q->next=s,s->next=p
在知道前驱结点的时候是不用考虑断链,不知道前驱结点要考虑断链,选C。
s->next=p
q->next=s
这题离谱
s->next=q->next, q->next=s
正常答案:
q->next=s 这题只能选c
答案错误
执行插入、删除元素操作时:
①先换后置位元素。若先换前置元素,容易找丢后面元素。
②“=”赋值一定是右侧的值赋给左侧
这题错了吧,q 的next指向s,那s怎么找到p?应该是s指向q的next,然后再让q的next指向s才合理吧
更改网名 回复 none: 是的
asdfg 回复 更改网名: 对的吧
zyjf 回复 asdfg: 错的,看我评论
2024kaoyan 回复 none: 感觉没错,因为p是指针指向的才是那个节点,所以不需要考虑节点找不到的问题,因为有一个指针p指着他
C
用户登录可进行刷题及查看答案
登录后提交答案