为链表创建结构

时间:2014-04-14 14:32:21

标签: c data-structures

专家,     我对链表和结构有一个简单的疑问。我想创建一个包含子集的列表。我的示例结构是

 typedef struct {
  uint16 a;
  uint8 b;
  uint8 c;
  uint8 d;
}subset_t;

typedef struct node{
   subset_t list;
   uint8 set_no;
   struct node *link;
}all_list:

但我认为这种结构不会达到我的预期,比如说有一个15号组,在集合中应该有不同的子集(a,b,c,d)。

实施例。

    set                     subset
     15                     a=10; b=1; c=17; d=12
                            a=00, b=43; c=21; d=15;

     10                     a=10; b=1; c=17; d=12
                            a=00, b=43; c=21; d=15;

如何为此定义结构?我想要创建不同结构的主要原因是轻松删除任何子集。

1 个答案:

答案 0 :(得分:1)

所以你想要的东西可能是:

typedef struct subset_t {
  uint16 a;
  uint8 b;
  uint8 c;
  uint8 d;
  struct subset_t *next;
}subset_t;

typedef struct node{
   subset_t list;
   uint8 set_no;
   struct node *link;
}all_list:

(注意subset_t添加到第一行)。您运行node结构,直到set_no成为您想要的结构。然后,该节点的listsubset_t strucutres的链接列表的头部,next指向列表中的下一个。