专家, 我对链表和结构有一个简单的疑问。我想创建一个包含子集的列表。我的示例结构是
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;
如何为此定义结构?我想要创建不同结构的主要原因是轻松删除任何子集。
答案 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
成为您想要的结构。然后,该节点的list
是subset_t
strucutres的链接列表的头部,next
指向列表中的下一个。