मैं एक BST के लिए कुछ तरीकों कोड करने के लिए है और मैं कुछ समस्याएं हैं, मुझे समझाती हूँ।
मैं निम्नलिखित संरचना है:
struct node {
struct node *lChild;
struct node *rChild;
int value;
};
तथा
struct tree {
struct node *root;
};
निम्नलिखित कार्यों के साथ-साथ:
struct tree* constructNewTree()
{
struct tree *T=malloc(sizeof(struct tree));
T->root=NULL;
return T;
}
तथा
struct node* constructNewNode(int i)
{
struct node *N=malloc(sizeof(struct node));
N->value=i;
N->lChild=NULL;
N->rChild=NULL;
return N;
}
और अपने मुख्य में मैं (उदाहरण के लिए) इस कॉल करना होगा:
int main()
{
struct tree *T;
T=constructNewTree();
insertKey(5,T);
insertKey(2,T);
insertKey(9,T);
return 0;
}
मुझे क्या करना है समारोह insertKey बनाने के लिए है (मैं, struct पेड़ * टी इंटरनैशनल) प्रत्यावर्तन का उपयोग कर।
मैं की तरह कुछ करना चाहता था
void insertKey(int i, struct tree *T)
{
if (T->root==NULL) {
T->root=constructNewNode(i);
return;
}
else {
if (i<=T->root->value) {
T->root->lChild=constructNewNode(i);
else if (i>T->root->value) {
T->root->rChild=constructNewNode(i);
}
}
}
लेकिन यह बहुत दूर नहीं मिलता है, प्रत्यावर्तन का उपयोग करके मुझे insertKey फिर से कॉल करने के लिए, लेकिन मैं एक नोड और एक पेड़ उसी तरह का उपयोग नहीं कर पा रहे की अनुमति होगी।
किसी को भी मैं यह कैसे कर सकता है यह देखते हुए संरचनाओं को बदले बिना पता है?
आपका बहुत बहुत धन्यवाद।













