void BST::insert(node* tree, node* newnode)
{
if (root == NULL)
{
root = new node;
root->software = newnode->software;
root->package_name = newnode->package_name;
root->package_version = newnode->package_version;
root->left = NULL;
root->right = NULL;
return;
}
if (tree->package_name == newnode->package_name)
{
return;
}
if (tree->package_name > newnode->package_name)
{
if (tree->left != NULL)
{
insert(tree->left, newnode);
}
else
{
tree->left->software = newnode->software;
tree->left->package_name = newnode->package_name;
tree->left->package_version = newnode->package_version;
(tree->left)->left = NULL;
(tree->left)->right = NULL;
return;
}
}
else
{
if (tree->right != NULL)
{
insert(tree->right, newnode);
}
else
{
tree->right->software = newnode->software;
tree->right->package_name = newnode->package_name;
tree->right->package_version = newnode->package_version;
(tree->right)->left = NULL;
(tree->right)->right = NULL;
cout << "Node Added To Right" << endl;
return;
}
}
}
void read(BST b,node* r)
{
ifstream file_obj;
file_obj.open("file_software.txt", ios::in);
while (!file_obj.eof())
{
string name, version;
int quantity, price;
getline(file_obj, name, '$');
file_obj >> version;
file_obj >> quantity;
file_obj >> price;
package a(name, version, quantity, price);
node* temp;
temp = new node;
temp->software = a;
temp->package_name = name;
temp->package_version = version;
b.insert(r, temp);
}
}
I am getting this error Exception thrown: read access violation. this was 0x40 error here if (tree->package_name == newnode->package_name) after inserting the first node as root. On this section of code something similar aswell if (tree->package_name > newnode->package_name) Exception thrown: read access violation. _Right was 0x40.