c语言双链表前后两节点交换,在双向链表(带头结点)中实现第一个结点与第二个结点的位 置互换。仅限修改指针域,假设该双向链表含3个结...

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

月半小夜猫

2013.07.25

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:55%    等级:12

已帮助:6466人

C语言方法,若求其余语言请把分给满足你需求的那个吧 设链表结点结构 typedef struct Node{ DataType data; struct Node *next; //下一个结点 struct Node *prev; //上一个结点 }Node; 若head为头结点指针 则 Node *p1,*p2; p1 = head->next; //p1为第一个结点 p2 = p1->next; //p2为第二个结点 p2->next->prev = p1; //第二个结点的后继(第三个结点)的前驱为第一个结点 p1->next = p2->next; //第一个结点的后继为第二个结点的后继(第三个结点) p1->prev = p2; //第一个结点的前驱为第二个结点 p2->next = p1; //第二个结点的后继为第一个结点 p2->prev = head; //第二个结点的前驱为头结点 head->next = p2; //头结点的后继为第二个结点 完毕 ,以上是用两个临时指针的方法,更自由,下面是一个临时指针的方法 Node *p; p = head->next; //p为第一个结点 p->next->next->prev = p; //第三个结点的前驱为第一个结点 p->next->prev = head; //第二个结点的前驱为头结点 p->prev = p->next; //第一个结点的前驱为第二个结点 head->next = p->next; //头结点的后继为第二个结点 ---× p->next = p->next->next; //第一个结点的后继为第三个结点 head->next->next = p; //第二个结点(×行中以转为头结点的后继)的后继为第一个结点 完毕

00分享举报

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值