मैं काफी सी के लिए नया हूँ और मैं सी में एक द्विआधारी पेड़ जो एक संख्या है और एक स्ट्रिंग की दुकान और फिर उन्हें जैसे प्रिंट होगा लागू करने के लिए कोशिश कर रहा हूँ
1 : Bread
2 : WashingUpLiquid
etc.
कोड मैं अब तक है:
#include <stdio.h>
#include <stdlib.h>
#define LENGTH 300
struct node {
int data;
char * definition;
struct node *left;
struct node *right;
};
struct node *node_insert(struct node *p, int value, char * word);
void print_preorder(struct node *p);
int main(void) {
int i = 0;
int d = 0;
char def[LENGTH];
struct node *root = NULL;
for(i = 0; i < 2; i++)
{
printf(Please enter a number: \n);
scanf(%d, &d);
printf(Please enter a definition for this word:\n);
scanf(%s, def);
root = node_insert(root, d, def);
printf(%s\n, def);
}
printf(preorder : );
print_preorder(root);
printf(\n);
return 0;
}
struct node *node_insert(struct node *p, int value, char * word) {
struct node *tmp_one = NULL;
struct node *tmp_two = NULL;
if(p == NULL) {
p = (struct node *)malloc(sizeof(struct node));
p->data = value;
p->definition = word;
p->left = p->right = NULL;
}
else {
tmp_one = p;
while(tmp_one != NULL) {
tmp_two = tmp_one;
if(tmp_one->data > value)
tmp_one = tmp_one->left;
else
tmp_one = tmp_one->right;
}
if(tmp_two->data > value) {
tmp_two->left = (struct node *)malloc(sizeof(struct node));
tmp_two = tmp_two->left;
tmp_two->data = value;
tmp_two->definition = word;
tmp_two->left = tmp_two->right = NULL;
}
else {
tmp_two->right = (struct node *)malloc(sizeof(struct node));
tmp_two = tmp_two->right;
tmp_two->data = value;
tmp_two->definition = word;
tmp_two->left = tmp_two->right = NULL;
}
}
return(p);
}
void print_preorder(struct node *p) {
if(p != NULL) {
printf(%d : %s\n, p->data, p->definition);
print_preorder(p->left);
print_preorder(p->right);
}
}
फिलहाल इसके लिए काम करने लगता है intरों लेकिन वर्णन हिस्सा केवल प्रवेश किया पिछले एक के लिए बाहर प्रिंट करता है। मुझे लगता है इस पर संकेत के साथ कुछ है charसरणी, लेकिन मैं कोई भाग्य यह काम करने के लिए हो रही थी। कोई भी विचार या सलाह?













