我正在寻找实现如下所示的多级数据结构。
object {
object A {
child {
myChild;
};
child 1 {
mychild;
};
};
object B {
child {
};
};
};
我的方法是使用如下所示的链表来实现这一点。
typedef struct node_s {
struct node_s *next;
struct node_s *first_child;
struct node_s *parent;
char *text;
} node_t;
将上述列表转换为 STAILQ (sys/queue.h linux) 将是
typedef struct node_s {
char *text;
....;
} node_t;
typedef struct list_s {
STAILQ_ENTRY(list_s) link;
node_t *first_child;
node_t *parent;
node_t *next;
int level;
} list_t;
typedef STAILQ_HEAD(list_head_s, list_s) list_head_t;
请建议除了链表或使用链表之外是否还有其他更好的方法来实现这一点?