【问题标题】:Access Pointer To Structure Of Same Type?指向相同类型结构的访问指针?
【发布时间】:2019-02-08 23:44:04
【问题描述】:

我正在尝试构建一个链表,需要一个指向下一个元素的指针 - 还存储数据和指向列表下一个元素的指针。

这是正确的方法吗?我如何通过 main() 访问这种类型的指针?

struct Data {

    int data = 1;
};
typedef struct Data Data;

struct Node {

    Data d;
    struct Node *dir_next; 
};
typedef struct Node Node;

【问题讨论】:

  • 请注意,您也可以将 typedef 合并到结构定义中(非常常见),或者在结构定义之前执行 typedef。
  • C++ 中不需要typedef struct
  • 你所拥有的对我来说看起来非常合理,但我会添加一个 linkedlist 类来为你包含和管理节点。这通常会使工作变得更简单。
  • C++ 有内置的标准链表实现:std::list(双链)和std::forward_list(单链)。您最好学习它们而不是编写自己的实现。

标签: c++ pointers linked-list structure


【解决方案1】:

你的方法是对的,但是你的代码中有一些不必要的东西。

struct Data {

    int data = 1;
};

struct Node {

    Data d;
    Node *dir_next; 
};

这就是你所需要的,这是创建链表的标准方法。

要访问列表元素,您可以:

Node current;
//build your list here
Node next = *(current.dir_next);

或使用指针

Node* current;
//build your list here
Node* next = current->dir_next;

【讨论】:

    猜你喜欢
    • 2019-03-18
    • 2017-01-04
    • 2013-12-13
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多