找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3136|回复: 3

【C++】链表倒序输出

[复制链接]

33

主题

1

回帖

561

积分

用户组: 大·技术宅

UID
580
精华
26
威望
28 点
宅币
341 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2014-12-8
发表于 2015-1-4 20:43:52 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
使用尽量简单的代码实现链表的倒序输出,这个就是考察使用栈的巧妙之处了。
  1. #include <iostream>
  2. using namespace std;

  3. struct Node
  4. {
  5.         int key;
  6.         Node* next;
  7. };

  8. Node* createList(int arr[],int nLength);
  9. void printList(Node* head);
  10. void reversePrint(Node* head);
  11. void clearList(Node* head);

  12. void main()
  13. {
  14.         int arr[] = {1,3,5,7,9};
  15.         int nLength = sizeof(arr)/sizeof(arr[0]);
  16.         Node* head = createList(arr,nLength);
  17.         printList(head);
  18.         reversePrint(head);
  19.         clearList(head);
  20. }

  21. Node* createList(int arr[],int nLength)
  22. {
  23.         Node* head = new Node;
  24.         head->key = arr[0];
  25.         head->next = NULL;
  26.         Node *p = head;
  27.         for(int i=1;i<nLength;i++)
  28.         {
  29.                 Node* ptr = new Node;
  30.                 ptr->key = arr[i];
  31.                 ptr->next = NULL;
  32.                 p->next = ptr;
  33.                 p = p->next;
  34.         }
  35.         return head;
  36. }


  37. void printList(Node* head)
  38. {
  39.         Node* p = head;
  40.         while( p!= NULL )
  41.         {
  42.                 cout<<p->key<<endl;
  43.                 p=p->next;
  44.         }
  45. }

  46. void clearList(Node* head)
  47. {
  48.         Node* p = head;
  49.         Node* ptr;
  50.         while( p!= NULL )
  51.         {
  52.                 ptr = p->next;
  53.                 delete p;
  54.                 p = ptr;
  55.         }
  56. }

  57. void reversePrint(Node* head)
  58. {
  59.         if( head != NULL )
  60.         {
  61.                 if( head->next != NULL )
  62.                         reversePrint(head->next);
  63.         }
  64.         cout<<head->key<<endl;
  65. }
复制代码
回复

使用道具 举报

0

主题

3

回帖

11

积分

用户组: 初·技术宅

UID
1446
精华
0
威望
1 点
宅币
6 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2016-1-26
发表于 2016-1-26 16:40:44 | 显示全部楼层
专业一点叫递归
回复 赞! 靠!

使用道具 举报

0

主题

22

回帖

57

积分

用户组: 小·技术宅

UID
1919
精华
0
威望
0 点
宅币
35 个
贡献
0 次
宅之契约
0 份
在线时间
2 小时
注册时间
2016-8-24
发表于 2016-8-24 21:21:04 | 显示全部楼层
#在这里快速回复#新人学习一下
回复 赞! 靠!

使用道具 举报

0

主题

24

回帖

56

积分

用户组: 小·技术宅

UID
2067
精华
0
威望
1 点
宅币
29 个
贡献
1 次
宅之契约
0 份
在线时间
0 小时
注册时间
2016-11-17
发表于 2016-11-17 10:33:18 | 显示全部楼层
支持    !!
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-19 01:09 , Processed in 0.041919 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表