c-创建一个具有不同结构类型的链表



我正在定义一个链表,其中一个结构(第一个)的类型与其他结构不同。第一个节点始终存在。

Type1 -> Type2_1 -> Type2_2  -> Type2_3->etc

我必须能够重新排列Type2元素。例如,我可以有:

Type1 -> Type2_3 -> Type2_1 -> Type2_2 -> etc

我尝试这样做的方法是定义一个双链接列表。每个Type2元素都可以指向下一个Type2、上一个,如果需要,还可以指向Type1。如果Type2元素紧挨着Type1,那么它指向上一个Type2的指针将设置为NULL。

 typedef struct Type2{
        struct Type2 *next;
        struct Type2 *previous;
        int isNextToType1;
    } Type2;

有更好的方法吗?

typedef struct Type2
{
  ...
  struct Type2 *previous; // This is NULL for the first element
  struct Type2 *next; // This is NULL for the last element
} Type2;
typedef struct Type1
{
  ...
  struct Type2* list; // This might be NULL if the list is empty
} Type1;

看起来你不需要比这个更多的东西。

相关内容

  • 没有找到相关文章

最新更新