0
我目前正在執行二叉搜索樹,我想用這樣的功能來查找樹的最小值:發現在一棵樹上特定值
int smallest(Tr *T, void *Item) {
TNode * n;
if(Size(T) == 0)
return 0;
while(n->left != NULL) {
n = n->left;
}
return 1;
}
哪裏有結構:
typedef struct TNodeTag {
void *v;
struct TNodeTag*left, *right, *parent;
} TNode;
typedef struct {
TNode *root;
TNode *current;
void * (*copyItems) (void *, void *);
int value;
} Tr;
,起初一個初始化函數:
void Initialize (Tr *T,void * (*copyItems) (void *, void *),{
T->root = NULL;
T->copyItems = copyItems;
T->value = 0;
}
凡void * Item
是w的地址這裏應該存儲一個最小節點的副本(使用copyValue函數)(我不知道如何創建)。 Tr * T
是第一個結構體的指針。函數smallest
如果能夠找到最小值則返回1,否則返回0(樹爲空)。
我不確定我的實現是否找到最小的節點是正確的,因爲我的函數總是返回1,除非樹是空的?