在一个单链表中的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__;
这是老师给的答案,感觉不太对!求解释和正确答案。
展开
 我来答
帐号已注销
2020-10-29 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:164万
展开全部

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。

扩展资料:

链接方式存储的线性表简称为链表(Linked List)。

链表的具体存储表示为:

① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)

② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))

参考资料来源:百度百科-单链表

百度网友ff3e920
2017-03-18 · TA获得超过454个赞
知道答主
回答量:139
采纳率:76%
帮助的人:16.9万
展开全部
简单来说,p前插,p和s都是指针,可以利用这一点。现将s放到p后边的位置,然后利用临时元素t,将p和s的data对调,这样就将s插到p前边了。这种方式的时间复杂度是O(1)。比单链表头开始遍历,找到p前驱,然后插s的时间复杂度低,遍历式算法的复杂度是O(n)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mahabatmseg
2018-10-01
知道答主
回答量:1
采纳率:0%
帮助的人:818
展开全部
例如:
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
也是链表的规定要切记阿。
老师讲链表时会证明的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2f492a1
2019-11-17
知道答主
回答量:2
采纳率:0%
帮助的人:1407
展开全部
答案应该说不完整,这样操作之后P指针所指结点还在S之前只是P原来指向的结点内容变了,题目要求P在S之后吧,后面应该加上P和S指针改变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式