6-8 求二叉树的高度
误解:
int GetHeight( BinTree BT )
{
if(BT->Left == NULL && BT->Right == NULL)
return 0;
else if(GetHeight(BT->Left) >= GetHeight(BT->Right))
return GetHeight(BT->Left);
else
return GetHeight(BT->Right);
}
正解:
int GetHeight( BinTree BT )
{
if(BT == NULL)
return 0;
else if(GetHeight(BT->Left) >= GetHeight(BT->Right))
return GetHeight(BT->Left)+1;
else
return GetHeight(BT->Right)+1;
}
6-10 二分查找
误解:
Position BinarySearch( List L, ElementType X )
{
for(int i=1; i <= L->Last; i++)
{
if(L->Data[i] == X)
{
return i;
break;
}
}
return 0;
}
正解:
Position BinarySearch( List L, ElementType X )
{
for(int i=1; i <= L->Last; i++)
{
if(L->Data[i] == X)
{
return i;
break;
}
}
return NotFound;
}
6-3 求链式表的表长
误解:
int Length( List L )
{
int l=0;
while(L->Data != -1)
{
l++;
L=L->Next;
}
return l;
}
正解:
int Length( List L )
{
int l=0;
while(L != NULL)
{
l++;
L=L->Next;
}
return l;
}