I have an assignment that requires me to read strings from a text file and insert them into a binary search tree. I am having a hard time reading the data from the file and passing it through a function. This is the code I have right now: struct tree_node {char *data;tree_node *left;tree_node *right;}; char **Read();tree_node *create_node(char **val); int main(){tree_node *root= NULL, *temp_node;char **val = (char**)malloc(sizeof(char*)*17);for (int i = 0; i < 17; i++) {val[i] = (char*)malloc(sizeof(char)*strlen(*val));}temp_node = create_node(val);root = insert(root, temp_node);printf("In Order: ");inorder(root);printf("\n");return 0;} char **Read() {int size;FILE *fp = fopen("in.txt", "r");fscanf(fp, "%d", &size);char** value = (char**)malloc(sizeof(char*));for(int i = 0; i < size; i++) {fscanf(fp, "%s", &value[i]);} fclose(fp);return value;} tree_node *create_node(char **val) {tree_node* temp = (tree_node*)malloc(sizeof(tree_node));for(int i = 0; i < 17; i++)for(int j = 0; j < strlen(*val); j++)temp->data[i] = val[i][j];temp->left = NULL;temp->right = NULL; return temp;}
I have an assignment that requires me to read strings from a text file and insert them into a binary search tree. I am having a hard time reading the data from the file and passing it through a function. This is the code I have right now:
struct tree_node {
char *data;
tree_node *left;
tree_node *right;
};
char **Read();
tree_node *create_node(char **val);
int main()
{
tree_node *root= NULL, *temp_node;
char **val = (char**)malloc(sizeof(char*)*17);
for (int i = 0; i < 17; i++) {
val[i] = (char*)malloc(sizeof(char)*strlen(*val));
}
temp_node = create_node(val);
root = insert(root, temp_node);
printf("In Order: ");
inorder(root);
printf("\n");
return 0;
}
char **Read() {
int size;
FILE *fp = fopen("in.txt", "r");
fscanf(fp, "%d", &size);
char** value = (char**)malloc(sizeof(char*));
for(int i = 0; i < size; i++) {
fscanf(fp, "%s", &value[i]);
}
fclose(fp);
return value;
}
tree_node *create_node(char **val) {
tree_node* temp = (tree_node*)malloc(sizeof(tree_node));
for(int i = 0; i < 17; i++)
for(int j = 0; j < strlen(*val); j++)
temp->data[i] = val[i][j];
temp->left = NULL;
temp->right = NULL;
return temp;
}
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 4 images