首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言通用链表如何用?

2012-03-28 
C语言通用链表怎么用??在网上看见一个建立C语言通用链表的例子:typedefstructliststruct{  liststruct*nex

C语言通用链表怎么用??
在网上看见一个建立C语言通用链表的例子:

typedef   struct   liststruct
{
  liststruct   *next;
}LIST,   *pLIST;
pLIST   Head   =   NULL;
pLIST   AddToList(pLIST   Head,   void   *   data,   size_t   datasize)
{
  pLIST   newlist   =   NULL;
  void   *p;
  //   分配节点内存和数据内存
  newlist   =   (pLIST)   malloc(datasize   +   sizeof(LIST));
  //   为这块数据缓冲区指定一个指针
  p   =   (void   *)(newlist   +   1);
  //   复制数据
  memcpy(p,   data,   datasize);
  //   将这个节点指定给链表的表头
  if(Head)
    newlist-> next   =   Head;
  else
    newlist-> next   =   NULL;
  Head   =   newlist;
  return   Head;
}

但不知怎么用,有哪位能举个例子说明一下吗??比如将一个整数和一个结构体添加进链表中。

[解决办法]
我在ibm的网上到过这个帖子,我试过,可以实现。不过我建议还是别用了,会把你搞糊涂的。我想一般也不会用到通用链表去处理数据。
我个人对这个的理解是:要很好的理解不同类型的数据在内存中如何存储,占了多少空间;另外要知道如何使用空指针(void *)
[解决办法]
我看这些所谓的通用链表就头痛. LZ啊, 时代不同了, 还是用用STL里的容器吧.
[解决办法]
通过连续地址实现的.
根据偏移量计算出数据的地址.
[解决办法]
自己写模板吧,别搞所谓的万能链表了。

热点排行
Bad Request.