我无法在我的代码中找出此错误:

error: invalid operands to binary < (have ‘Flight’ and ‘NodeT’)
 if ( flight < *p)
             ^


我正在尝试制作一个二叉树并为其创建搜索:

NodeT *insertT(NodeT *p, Flight flight)
{

if ( p == NULL )
{
    p = malloc ( sizeof ( NodeT ) ) ;

    (p) -> pLeft = NULL ;
    (p) -> flight;
    (p) -> pRight = NULL ;
}
else/* search the node to which new node will be attached */

{
    /* if new data is less, traverse to left */
if ( flight < *p)
        insert ( &( (p) -> pLeft ), flight ) ;

else /* else traverse to right */

        insert ( &( (p) -> pRight ), flight ) ;
}



}


我尝试过更改和调整节点。

最佳答案

您正在尝试比较两种不同的类型-Flight flightNodeT *p

根据您的代码,您似乎需要进行更改

if (flight < *p)




if (flight < p->flight)

关于c - 遇到二叉树问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34008893/

10-13 08:18