定义结构
typedef struct BSTNode
{
int data;
struct BSTNode *lchild,*rchild;
}BSTNode,*BSTree;
之后,定义的变量如下;他们之间有什么区别?
BSTNode p;
BSTNode *p;
BSTree p;
BSTree *p;
BSTNode * p=new BSTNode;
(*t)=(BSTNode*)malloc(sizeof(BSTNode));
void clear(BSTree t){……}
double find(BSTree* t,long k) {……}
各种不懂啊……所以用的时候不知道怎么定义啊~先谢谢各位啦~~
--
void clear(BSTree t)
{
if (t==NULL)
{return;}
t->num=0;
clear(t->lchild);
clear(t->rchild);
}这个是在干什么?
double find(BSTree* t,long k) {……} 这个应该写查找第k个数。
这两个怎么定义的时候不一样呢?一个是BSTree t,一个是BSTree* t?为什么?
void clear(BSTree t)
{
if (t==NULL)
{return;}
t->num=0;
clear(t->lchild);
clear(t->rchild);
delete t;
t = NULL;
}
这样才对,这样就可以清空整棵树。没有一个节点。
double find(BSTree* t,long k) {……} 这个应该写查找第k个数。
我认为是多写了*,使用没有必要,给问题解决增加难度。