L为无表头结点的单链表,p既不是首元结点也不是表尾结点,在p结点前插入s结点.
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/07 04:21:09
L为无表头结点的单链表,p既不是首元结点也不是表尾结点,在p结点前插入s结点.
q=p;
p=L
;while(p->next!=q)p=p->next;
s->next=p->next;
p->next=s;
我怎么看这是在p结点后面插入s啊,小弟不解,求指教.
q=p;
p=L
;while(p->next!=q)p=p->next;
s->next=p->next;
p->next=s;
我怎么看这是在p结点后面插入s啊,小弟不解,求指教.
你好,如果下面这段代码去掉
q=p;
p=L
;while(p->next!=q)p=p->next;
那么
s->next=p->next;
p->next=s;
就是在结点p后面插入s,这个应该好理解吧.
那么前面的那段代码是什么作用呢?
q=p;//用临时指针q指向结点p
p=L;然后让指针p指向链表头
while(p->next!=q)p=p->next;//查找结点q的前驱结点,
//while循环退出条件是p->next == q,即p此时指向q的前驱结点(实际就是原来的节点p的前驱)
现在应该懂了吧~
希望对你有帮助,不懂可追问~
q=p;
p=L
;while(p->next!=q)p=p->next;
那么
s->next=p->next;
p->next=s;
就是在结点p后面插入s,这个应该好理解吧.
那么前面的那段代码是什么作用呢?
q=p;//用临时指针q指向结点p
p=L;然后让指针p指向链表头
while(p->next!=q)p=p->next;//查找结点q的前驱结点,
//while循环退出条件是p->next == q,即p此时指向q的前驱结点(实际就是原来的节点p的前驱)
现在应该懂了吧~
希望对你有帮助,不懂可追问~
已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适
设指针p指向单链表中结点A,指针s指向被插入的结点X,则在结点A前面插入结点X是的操作序列为:
已知带表头结点的单链表L,指针P指向L链表中的一个结点(非首、尾结点):删除P结点的语句序列是?
已知L 是无表头结点的单链表,且P 是指向表中某个结点的指针,
在一个单链表中,若p所指结点不是最后结点,s指向已生成新结点,则在p之后插入s所指结点的正确操作是?
数据结构题目:双链表中,在*p结点之后插入一个结点*s的操作是?
已知带头结点的单链表L,指针P指向L链表中的一个结点为(非首结点、非尾结点),
4.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点B,则在结点A的后面插入结点B的操作序列为________
数据结构已知指针P指向双向链表中的一个结点(非首结点、非尾结点),则:(1)将结点S插入在P结点的直接
设单链表L带头结点且非空,指针变量p指向L中的一个结点,且该结点既不是L中的第一个结点,也不是L中的最后一个结点,指针变
在一个头指针为L的循环链表中,指针域为next,指针P所指结点(此结点是尾结点)的条件是( ).
在二叉树中,指针p所指结点为叶子结点的条件是