码迷,mamicode.com
首页 > 其他好文 > 详细

单链表的逆序 (采用头插法实现)

时间:2020-01-08 22:47:30      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:pre   移动赋值   amp   turn   赋值   void   output   str   尾插法   

// 单链表的建立
// 单链表的建立可以用头插法或者尾插法。头插法是指建立单链表时, 总是将新节点插入到当前链表的表头。
// 头插法常用在将一个已存在的链表逆序。
1
#include <iostream> 2 3 using std::cout; 4 using std::endl; 5 6 struct Item{ 7 char c; 8 Item *next; 9 }; 10 Item *Routine1(Item *x){ 11 Item *prev = NULL, *curr = x; 12 while (curr) { 13 Item *next = curr->next;//将当前结点的后续结点赋值给next 14 curr->next = prev;//修改当前结点的后续结点指向prev 15 prev=curr;//此时prev向前移动赋值为curr 16 curr=next;//curr 赋值为 curr->next 当时保存的后续结点的指针 17 } 18 return prev;//最后prev指向的就是移动到最后一个节点的curr,而curr->next == NULL; 19 } 20 21 void Routine2(Item *x){ 22 Item* curr = x; 23 while (curr) { 24 cout << curr->c << " "; 25 curr=curr->next; 26 } 27 cout << endl; 28 29 } 30 31 int main(void ){ 32 Item *x, 33 d = {d, NULL}, 34 c = {c, &d}, 35 b = {b, &c}, 36 a = {a, &b}; 37 Routine2(&a); 38 x = Routine1(&a); 39 Routine2(x); 40 return 0; 41 }
// output: a b c d
       d c b a

单链表的逆序 (采用头插法实现)

标签:pre   移动赋值   amp   turn   赋值   void   output   str   尾插法   

原文地址:https://www.cnblogs.com/Davirain/p/12168944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!