最近看了一些关于c 的ADT的部分,好像为了通用性, 都会定义一个 typedef YourStruct Item ,然后List Queue 等都针对 Item进行操作,感觉虽然有了点通用性,但是typedef Item 时,已经固定Item的类型了,似乎 在同一个文件不能对不同的类型使用此List 操作。比如,某List 里存放int 型的,另一个list存放float型 。
我想知道的是在实际c 编程时是怎样进行处理的。 。
之前我问过这个问题,原本以为我懂了,后来一想又有一些想不通的地方
http://topic.csdn.net/u/20120529/16/4c2a75b9-264a-4631-b53e-34d317eda634.html
typedef int Item;
struct node {
Item item;
struct node * left;
struct node * right;
};
typedef struct node node_t;
struct tree{
node_t * root;
int size;
};
typedef struct tree tree_t;
对于加入树中的Item ,似乎应该是malloc来的,
否则如果是局部变量 ,退出函数时,加到tree里的Item 其实已经无法访问 (我是这样认为的)
有人说用 void* 类型来代替 Item ,
我想不通的是对于像int ,等 基本类型,难道也要 malloc一下,才存到 tree 中 ..