| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 762 人关注过本帖
标题:帮忙修改一个"List.h"以实现对任意数据类型的支持。
只看楼主 加入收藏
sxzjw
Rank: 2
等 级:论坛游民
帖 子:32
专家分:21
注 册:2010-5-23
结帖率:57.14%
收藏
已结贴  问题点数:20 回复次数:3 
帮忙修改一个"List.h"以实现对任意数据类型的支持。
照书上编写好“List。h”。千辛万苦修改,才把它改对。
没想到最后书上给了一个问题,要就修改list.h以使得对任意数据类型的支持。

压缩包里有三个list.h,分别是对“char、int、struct”的支持。但怎么实现对任意的支持呢?
大家有没有什么好的思路?请教一个~
包里面的18-1,18-2,18-3都是测试程序,分别用list.h、lis2t.h、list3.h库函数编译。仁兄们帮忙看看。
 
List.rar (3.34 KB)
搜索更多相关主题的帖子: List 类型 数据 
2010-06-23 23:07
sxzjw
Rank: 2
等 级:论坛游民
帖 子:32
专家分:21
注 册:2010-5-23
收藏
得分:0 
怎么没有人帮下忙啊?我真的想不出来了。。
2010-06-24 12:37
hnliji1107
Rank: 4
等 级:业余侠客
帖 子:53
专家分:216
注 册:2009-10-23
收藏
得分:20 
你可以把类型那一块定义成共用体啊,把所有你想到的变量类型都可以放到里面去
typedef struct data
{
    char ch;
    struct data *next;   
}stdata;

typedef struct node{
    union
    {
        char cdata;
        int idata;
        stdata *sdata
    }data
    struct node *next;
}ChainNode;

假如有:ChainNode *chNode;

这样通过引用chNode->data.cdata、chNode->data.idata、chNode->data.sdata->ch、chNode->data.sdata->next就可以使用任何变量了
注意,共用体中的变量一次只能使用一个。因为其中的变量是公用一块内存的。

[ 本帖最后由 hnliji1107 于 2010-6-24 14:35 编辑 ]
2010-06-24 14:31
sxzjw
Rank: 2
等 级:论坛游民
帖 子:32
专家分:21
注 册:2010-5-23
收藏
得分:0 
楼上的方法不错啊~只要在list.h中定义就可以了。
试了一试,好用。
可是如果任意呢?不用预先存储什么数据类型,而是在测试函数m.c定义数据类型,并使list.h正确编译。这个怎么弄啊?
2010-06-24 23:14
快速回复:帮忙修改一个"List.h"以实现对任意数据类型的支持。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011486 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved