繁体   English   中英

包含多个数组的二叉树结构

[英]Binary Tree Struct containing Multiple Arrays

就像免责声明一样,我并不是在寻找任何硬代码解决方案,而只是在朝着正确的方向前进。

本质上,我需要创建一个树,该树在每个Node中包含两个数据数组和两个单独的char数组。

struct Node {
    char *name;
    char *number;
    struct Node *left;
    struct Node *left;
};

这是我目前的结构,输入形式为:

name number
name number
name number
.

. 作为终止,现在,我有一个理论来解析它,即getchar直到. 并将namenumber scanf到一个数组中。 但是从这一点来看,我不确定将这些数组传递给函数以将东西添加到树中,定义数组的大小等的确切方式。有人可以针对此问题给出一些提示吗?

首先,您需要使用动态内存。 数组的大小将在运行时在您读取它们之后从我猜想的文件中定义。

如果您读取的char*以空字符结尾(即最后一个字符为'\\ 0'),则可以使用strlen函数获取其大小,然后将该值传递给malloc以便在使用strcpy之前分配内存将字符串复制到该内存中。 别忘了free调用以返回您malloc的所有内容

因此,只需将两个char*传递给将它们插入您的数据结构中的函数(是二叉树还是try?您在标题中使用了一个术语,而在问题中使用了另一个术语)

在Google中搜索“ C二叉树教程”:
http://www.cprogramming.com/tutorial/c/lesson18.html

我会做一个堆栈类型:

typedef struct
{
int pos;
char *array;
int size;
} charArray;

charArray *newCharArray();

void pushCharArray(charArray * ca, char c);
void popCharArray(charArray *ca);


charStack *name;
charStack *number;

在pushCharArray内部,您应该检查ca是否为null,如果需要更多空间,则增加大小,增加位置...

暂无
暂无

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

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