免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2909 | 回复: 7
打印 上一主题 下一主题

[C++] C++栈的链表实现,编译通过,运行时报错,求指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-03 21:36 |只看该作者 |倒序浏览
本帖最后由 zmy235 于 2014-04-13 10:11 编辑
  1. #include <iostream>
  2. using namespace std;
  3. typedef  int T;

  4. class Node
  5. {
  6. private:
  7.     T data;
  8.     Node * link;

  9. public:
  10.     Node()
  11.     {
  12.         link = NULL;
  13.     }   
  14.     Node(T x)
  15.     {
  16.         data = x;
  17.         link = NULL;
  18.     }
  19.     friend class List;

  20. };

  21. class List
  22. {
  23. private:
  24.     Node *first;

  25. public:
  26.     void push(const T x)
  27.     {
  28.         Node * newnode = new Node(x);
  29.         newnode->link = first->link;
  30.         first->link = newnode;
  31.     }
  32.     void pop()
  33.     {
  34.         Node * current = first->link;
  35.         first->link = current->link;
  36.         delete []current;
  37.     }
  38.     void output()
  39.     {
  40.         Node * current = first->link;
  41.         if(current->link!=NULL)
  42.         {
  43.             cout<<current->data<<"--"<<endl;
  44.             current = current->link;
  45.         }
  46.         else
  47.         {
  48.             cout<<current->data<<endl;
  49.         }
  50.     }
  51. };


  52. int main()
  53. {
  54.     List list;
  55.     int x;
  56.     while(cin>>x)
  57.         list.push(x);

  58.     list.output();
  59.     return 0;
  60. }
复制代码

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-04-03 22:23 |只看该作者
回复 1# zmy235
试了下,我运行时没报错。
  1. (gdb) run
  2. Starting program: /sandbox/test
  3. 111
  4. 222
  5. 333
  6. 333--

  7. Program exited normally.
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-04-04 08:37 |只看该作者
本帖最后由 libo26_lee 于 2014-04-04 08:37 编辑

List没有显式初始化函数,push操作时 newnode->link = first->link; 但是first没有初始化。。。

论坛徽章:
11
2015年迎新春徽章
日期:2015-03-04 09:55:282017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之辽宁
日期:2016-12-15 10:24:1715-16赛季CBA联赛之佛山
日期:2016-11-30 09:04:2015-16赛季CBA联赛之江苏
日期:2016-04-29 15:56:1215-16赛季CBA联赛之同曦
日期:2016-04-12 13:21:182016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之山东
日期:2016-02-16 11:37:52每日论坛发贴之星
日期:2016-02-07 06:20:00程序设计版块每日发帖之星
日期:2016-02-07 06:20:0015-16赛季CBA联赛之新疆
日期:2018-01-09 16:25:37
4 [报告]
发表于 2014-04-07 11:05 |只看该作者
用std就别造轮子了,要造,也搞个泛型模版的吧

论坛徽章:
0
5 [报告]
发表于 2014-04-07 22:13 |只看该作者
运行时 报什么错, 是不是coredump了。如果coredump了就看下堆栈,或者加调试语句, 我光就2个类的实现来看,的确没看出任何毛病,有可能cin 那块是不是有问题。

论坛徽章:
0
6 [报告]
发表于 2014-04-10 15:22 |只看该作者
回复 3# libo26_lee


    o,这个问题。

论坛徽章:
0
7 [报告]
发表于 2014-04-10 15:29 |只看该作者
本帖最后由 zmy235 于 2014-04-10 16:32 编辑

回复 3# libo26_lee


你说的对

论坛徽章:
0
8 [报告]
发表于 2014-04-10 15:32 |只看该作者
回复 4# bskay


    你说的对,用个模板更合适
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP