【问题标题】:Linked list of alternating structure type in c [closed]c中交替结构类型的链表[关闭]
【发布时间】:2016-04-07 05:08:11
【问题描述】:

这是一个关于c语言的问题,

我正在尝试创建具有 A 和 B 两种类型的结构。 这样我就可以声明一个链表A->B->A->B...

我的问题是,我应该在 B 之前定义 A 还是在 A 之前定义 B 还是有某种引导方法?

【问题讨论】:

  • 我无法弄清楚最后一部分与“如何声明类型以便我可以创建链接列表 A->B->A->B-> ...?”
  • 另外,您尝试了哪些方法,但效果如何?
  • 把我的水晶球拿出来。它说你试过这个并且有编译错误。你需要前向声明你的结构。干得好,水晶球! =)
  • 对不起,你的整个问题都是意大利面。也许如果你展示一些真实的代码来说明你的意思会更清楚。
  • struct A; struct B { struct A *ptr; }; struct A { struct B *ptr; };

标签: c struct linked-list


【解决方案1】:

您的问题是任何一种类型都必须知道另一种类型才能被定义。您定义类型的顺序无关紧要,但是您必须告诉您定义的第一个,第二个存在,但稍后会定义。这称为前向声明,请参阅 BostonBooks 评论中的链接。在 C(以及 C++,顺便说一句)中,这将如下所示:

struct B;
struct A
{
    struct B* next;
};
struct B
{
    struct A* next;
};

(我从 M.M 的评论中窃取了代码...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 2016-07-19
    相关资源
    最近更新 更多