C语言定义一个双向链表(不是双向循环列表),编程实现其中两个节点的交换(不是内容交换)

希望大神能提供完整的程序,不是仅算法,谢谢... 希望大神能提供完整的程序,不是仅算法,谢谢 展开
 我来答
阳顶天鹿鼎记
2014-02-10 · TA获得超过502个赞
知道小有建树答主
回答量:675
采纳率:100%
帮助的人:407万
展开全部
#include <stdio.h>

struct TNode

{
TNode pre;
TNode next;
int seq;
};
int main()
{
TNode pNode[5], temp;
int n = 5, i = 0;
//链表初始化

for (i; i < n; i++)
{
pNode[i].next = pNode[i+1];
if ( i != 0)
{
pNode[i].pre = pNode[i-1];

}

pNode[i].seq = i;

}
// 链表节点交换,交换3和4
temp = pNode[3];
交换,再将3的前和后,4的前和后重新赋值

return 0;

}
追问
没看懂,不好意思,能写点注释吗
追答
先将3节点的内容全部保存到temp, 将3变为4,即将4的next赋给3,4的seq赋给3,
再将temp的pre赋给4,temp的seq赋给4,
最后将temp的pre赋给3,再将3赋为4的next。可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式