繁体   English   中英

是否可以制作一个指向struct(节点)的指针数组?

[英]Is it possible to make an array of pointers to struct (node)?

所以我正在尝试制作一个前缀树,但是我不确定这是否会导致某种逻辑错误?

typedef struct TreeTag
{
    char letter;
    struct TreeTag *links[26]; /* Is this advisable? */
    int fullword;
    int linknum;
}TreeNode;

是的,允许指向结构节点的指针数组

如果您这样做:

struct node * p; //it's allowed

因此声明指针数组没有问题。

当您需要多个指向同一结构的指针时,请执行此操作

struct node * left;
 strcut node * right;

那你为什么不能这样做

struct node *child[2];

同样, struct node *p[26]也可以,但是一切都取决于您的要求和实现。

一个需求,就像我想到的d-ary tree (每个节点都有d个节点)一样,您想直接从父节点导航到它的子节点。

因此struct node *child[d]是合法的(其中d是#defined

没关系。 您可以在结构内部使用指向该结构的指针。

在声明成员时,该结构被视为已声明但尚未定义,并且指向已声明但尚未定义的类型的指针很常见。 例如,您将如何在二叉树或链表中定义节点? 对于列表,您通常会做类似

typedef struct ListItem {
   struct ListItem * next;
   SomeType data;
} ListItem;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM