写数据结构遇到的问题。
假设有
void DeleteTree(BTREE BT)
{
}
其中BTREE本身就是一种指针数据类型。
如果在函数中做如下操作
1.
delete BT ;
BT = NULL ;
那么在主函数中如果要遍历的话,将会出现错误,因为遍历操作判断BT是否为空,子函数中将其置空,注意,其置空的只是主函数传给子函数的BT的副本,故BT不为空,但子函数中将BT 的空间delete掉了,因此程序出错。需要注意啊
2.
BT = BT->lChild ;
Delete BT ;
BT = NULL ;
这个是不会出错的,的确是将BT的左孩子指针置空了。
这 两种情况混在一起还真是让人迷惑额