首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 再次提问:这个地方是怎么回事情啊?
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dding_inshili
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-22 21:48:52 楼主
    下面是一个树的创建函数, 在定义的时候是没有参数的, 怎么可以用带参数的形式进行调用呢?
    typedef struct node      /*节点定义*/
      {
      char data;
      struct node *linkleft, *linkright;
      }NODE, *NODEP;


    NODEP create()
      {
      NODEP p;
      char  ch;
      if((ch=getchar())=='#')
        p=NULL;
      else
      {
        p=(NODE *)malloc(sizeof(NODE));
        p->data=ch;
        p->linkleft=create(p->linkleft);    这个地方是怎么回事情啊
        p->linkright=create(p->linkright);  create()不是没有参数的吗?
      }
      return p;
      }
    8  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lzr4304061988012
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 22:06:051楼 得分:0
    LZ,没弄错吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dding_inshili
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 22:10:132楼 得分:0
    是书上抄下来的, 反正, 我是怎么都看不懂, 也许是C语言的什么地方我没有关注到吧,在此恳请各位给个指点, 或者书上本来就是错的,我只是想得到一个求证!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lzr4304061988012
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 22:17:083楼 得分:0
    对不对编译下就知道了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lzr4304061988012
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 22:21:164楼 得分:0
    error C2660: “create”: 函数不接受 1 个参数
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dding_inshili
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 22:31:025楼 得分:0
    我在TC2.0下是没有任何问题的啊, 我都被搞懵了!!!!!!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xqls_xqls
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 22:31:376楼 得分:0
    你抄错了吧,还是书上错误。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dding_inshili
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 22:36:177楼 得分:0
    你说错了吧, 但是系统编译通过了啊, 这个【好像比较严重】啊!!!  若果没有弄清这里面的原因!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • aniuman
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 00:43:448楼 得分:0
    我承认,错的很离谱!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • pengzhixi
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 00:52:479楼 得分:0
    我觉得creat函数应该是有个参数的,这个参数可能的节点指针。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wanhui219
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 16:35:4410楼 得分:0
    create() 应该还有另一个多态的函数

    如create(NODEP p)
    {
    ......
    }

    理解一下面向对象的特性
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • phz1985
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 17:05:3511楼 得分:0
    NODEP p;

    NODEP create(NODEP p)
      {

      char  ch;
      if((ch=getchar())=='#')
        p=NULL;
      else
      {
        NODEP p;
        p=(NODE *)malloc(sizeof(NODE));
        p->data=ch;
        p->linkleft=create(p->linkleft);    这个地方是怎么回事情啊
        p->linkright=create(p->linkright);  create()不是没有参数的吗?
      }
      return p;
      }

    这样就好了,你这儿定义的是递归函数,然而此函数需要一个参数,所以需要在调用之前定义一个节点.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dding_inshili
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 21:51:5412楼 得分:0
    回11#:
    这样写当然一目了然, 是简洁的递归调用, 但问题的关键是:函数在声明的时候是没有任何参数的, 而该函数在实现的时候, 却用带参的形式去递归呢?
    .......
    NODEP create();/* 声明的时候没有参数 */
    .......
    NODEP create()  /* 实现的形式,也没有 */
    {
    ........
    ...=create(p->linkleft);/* 这个地方有*/
    ........
    }

    -----------------------------------------------------------------------------------------------
    回10#楼:
    多态的实现基础应该是类下的虚函数, 但是该函数无论在声明的时候, 还是在实现的时候, 都没有virtual限定。这怎么可能按多态性理解呢?另外, 我只是知道C++支持多态性, 至于C语言, 我还没有听说, 它也支持多态性呢!!!


    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved