QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2729|回复: 0
打印 上一主题 下一主题

[问题求助] 数据结构的问题

[复制链接]
字体大小: 正常 放大

4

主题

4

听众

29

积分

升级  25.26%

  • TA的每日心情
    郁闷
    2012-3-31 11:21
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    跳转到指定楼层
    1#
    发表于 2012-3-19 21:46 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    本帖最后由 流泪手心 于 2012-3-19 21:52 编辑

    本人在学严老师的数据结构,书上写的伪代码让我很头疼,好不容易找到C的源码,就第二章的线性表的顺序存储结构有问题,代码如下:
    /* c2-1.h 线性表的动态分配顺序存储结构 */
    #define LIST_INIT_SIZE 10 /* 线性表存储空间的初始分配量 */
    #define LISTINCREMENT 2 /* 线性表存储空间的分配增量 */
    typedef struct
    {
       ElemType *elem; /* 存储空间基址 */
       int length; /* 当前长度 */
       int listsize; /* 当前分配的存储容量(以sizeof(ElemType)为单位) */
    }SqList;
    线性表的顺序存储结构的物理地址是连续的,是不是所有数据都存在了elem这个指针所指向的空间?那length不是结构体的一个变量吗,我们一般都自己赋值的,现在它怎么能和存储空间联系起来啊?我如果改变了存储空间数据,length怎么跟着一起变?还有listsize这个变量也是,怎么和elem联系起来啊?
    还有代码如下:
    Status DestroyList(SqList *L)
    { /* 初始条件:顺序线性表L已存在。操作结果:销毁顺序线性表L */
       free((*L).elem);
       (*L).elem=NULL;
       (*L).length=0;
       (*L).listsize=0;
       return OK;
    }
    free不是已经释放了结构体指针的L吗,不就不存在了L这个结构体指针了吗?为什么还要赋空值给*L的各个变量?
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-6-28 13:17 , Processed in 0.619219 second(s), 50 queries .

    回顶部