检查具有空数据的节点

标签 c binary-tree

如何检查节点是否有值?因为如果我这样做:

if(strcmp(current->left->value,"")!=0)

即使在我这样做之前,它也总是有一个带有心形、微笑和其他东西的随机值:

current->left = (struct baseLL*) malloc(sizeof(struct baseLL));

这是我的结构:

struct baseLL {
    char value[32];
    struct baseLL *right,*left,*prev;
}; struct baseLL *current;

最佳答案

当你 malloc 一个新节点时,value 中的数据是未初始化的。因此,该数组包含很可能不等于 ""(空字符串)的垃圾数据。

相反,您可以尝试在 malloc 之后直接使用 current->left->value[0]='\0'; 初始化值。然后,您确实可以使用 strcmp 检查节点是否具有值。

关于检查具有空数据的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25810032/

相关文章:

c++ - 1 << 31 产生错误, "The result of the ' <<' expression is undefined"

java - 二进制搜索树的深度,但有所不同

java - 找出两棵树是否有相似的叶子(从左到右)?

php - 用php绘制二叉树

algorithm - 从中序和前序重建二叉树

c - 如何正确使用strncpy?

c - 指针比较与字符串比较 strcmp 的性能

c - 为什么不能触发子进程中的信号处理程序?

即使分配了内存,修改链表的 C 程序也会导致段错误

c - C中的二叉树遍历具有结构