【发布时间】:2014-05-19 08:31:42
【问题描述】:
我正在尝试制作一个二叉树程序,其中每个树节点都包含一个“库存”结构。
我目前在我的插入函数中遇到一个错误,导致编译失败。 我得到的错误是:
left of '.invPartNo' must have class/struct/union
type is 'inventory *'
did you intend to use '->' instead?
这些是我的结构:
//inventory definition
typedef struct inventory
{
char invName[36];
int invPartNo;
int invQOH;
float invUnitCost;
float invPrice;
}item;
//tree definition
struct btree {
item *data;
struct btree *left;
struct btree *right;
} ;
这是我的插入代码,我确实使用了 ->,所以我不明白我遇到的错误。任何帮助/解释将不胜感激。
struct btree *Insert(btree *node, inventory *i)
{
if(node == NULL)
{
btree *temp;
temp = (btree *)malloc(sizeof(btree));
temp->data = i;
temp->left = temp->right = NULL;
return temp;
}
if(i.invPartNo > node->data->invPartNo) //error here
{
node->right = Insert(node->right, i);
}
else if(i.invPartNo < node->data->invPartNo) //error here
{
node->left = Insert(node->left, i);
}
return node;
}
【问题讨论】: