C语言实现一个泛型容器

用C语言实现一个容器,可以装字符串、字符、数字、二进制数据, 其中每一个被装进的数据要附带一个唯一识别码( uid )。
int put_char(List *list,  unsigned int uid, char c);
int put_string(List *list, unsigned int uid, char *str);
int put_integer(List *list, unsigned int uid, int num);
int put_binary(List *list, unsigned int uid, unsigned char* data, unsigned int data_len);


能遍历容器内数据节点,根据uid删除节点,打印节点。
unsigned int getNodeNum(List *list);
int delete_node(List *list, unsigned int uid);
int print_node(List *list, unsigned int uid);
void delete_all_nodes(List *list);


    我的解决方案:使用单链表,结构体里定义各数据类型,用一个标志位来标记数据类型,可以实现每个节点都能具有任意数据类型。

/**
 ******************************************************************************
  * @file    list.h
  * @author  summer
  * @version V1.0
  * @date    2015-05-25
  * @brief   C语言实现一个泛型容器
   *           函数声明,功能注释在.c文件中。
  ******************************************************************************
  * @attention
  * IDE:      Visual Studio 2010
  * 
  ******************************************************************************
*/
#ifndef _LIST_H
#define _LIST_H
#define IS_INT  1
#define IS_CHAR 2
#define IS_STR  3
#define IS_BIN  4

#define FALSE   0
#define TRUE    1

typedef struct LIST
{
    struct LIST *link;
    unsigned int uid;
    int          int_value;
    char         char_value;
    unsigned int mark; // mark来标记类型 IS_INT  1, IS_CHAR 2, IS_STR  3, IS_BIN  4
    char         str[100];
}List;

List *create();

int search_node
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值