在一个单链表中的p所指结点之前插入一个s所指结点时,可执行如下操作:
⑴s—>next=__p->next__;⑵p—>next=s;⑶t=p—>data;⑷p—>data=__s->data__;⑸s—>data=__t__;这是老师给的...
⑴ s—>next=__p->next__;
⑵ p—>next=s;
⑶ t=p—>data;
⑷ p—>data=__s->data__;
⑸ s—>data=__t__;
这是老师给的答案,感觉不太对!求解释和正确答案。 展开
⑵ p—>next=s;
⑶ t=p—>data;
⑷ p—>data=__s->data__;
⑸ s—>data=__t__;
这是老师给的答案,感觉不太对!求解释和正确答案。 展开
4个回答
展开全部
q=head;
while(q && q->next!dao=p)
{
q=q->next;
}//循环结束时q后面正好zhi是需要找的dp或者q为空表示链版表中没有权p
if (q)
{
s=new node;
s->data =e;
q->next = s;
s->next = p;
}
q->next表示结点中存放的指针,该指针用来指向某个结点。原来的连接关系是q->next=p,意思是q中存放的指针的值是p,即q指向p。
扩展资料:
链表的具体存储表示为:
① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)
② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))
参考资料来源:百度百科-单链表
展开全部
简单来说,p前插,p和s都是指针,可以利用这一点。现将s放到p后边的位置,然后利用临时元素t,将p和s的data对调,这样就将s插到p前边了。这种方式的时间复杂度是O(1)。比单链表头开始遍历,找到p前驱,然后插s的时间复杂度低,遍历式算法的复杂度是O(n)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
例如:
t=a
a=b
b=t 那么按照这个例子扩展命题;
t=p->data
p->data=s->data
s->data=t
中间p->data=s->data 是链表的死规定,背会更好,上面
s—>next=__p->next__
p—>next=s
也是链表的规定要切记阿。
老师讲链表时会证明的。
t=a
a=b
b=t 那么按照这个例子扩展命题;
t=p->data
p->data=s->data
s->data=t
中间p->data=s->data 是链表的死规定,背会更好,上面
s—>next=__p->next__
p—>next=s
也是链表的规定要切记阿。
老师讲链表时会证明的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案应该说不完整,这样操作之后P指针所指结点还在S之前只是P原来指向的结点内容变了,题目要求P在S之后吧,后面应该加上P和S指针改变
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询