c - 是否可以制作一个指向结构(节点)的指针数组?

标签 c arrays pointers tree treenode

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

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 )

关于c - 是否可以制作一个指向结构(节点)的指针数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13541583/

相关文章:

ios - Swift:每次出现 tableview 时如何重新加载新内容(例如数组)?

c - sizeof char 指针和指向指针的指针

c - 取消引用该指针给我-46,但我不知道为什么

c - 在数据结构中使用数组成员

C 循环打印字符串两次? (使用 scanf ("%c"))

Javascript - 减少数组数组

分配和释放数组指针数组的正确方法

c - 什么是异或和?

c - 释放分配的内存时堆损坏

java - JNI 中的复杂数组初始化