Class for AVL trees (C++) -


so wanted make avl tree in c++. used class make nodes , class rest of fuctions (instert, delete etc). when want make more 1 tree decided needed make more roots (one every tree). problem when declare new root inside main. when declare outside seems work fine.

avlnode:

class avl_node { public:     int data;     avl_node *left;     avl_node *right; }*root; 

avltree::insert implementation:

avl_node* avltree::insert(avl_node* root, int item) {     if (root == null) {         root = new avl_node;         root->data = item;         root->left = null;         root->right = null;         return root;     }     if (item < root->data) {         root->left = insert(root->left, item);     }     else if (item > root->data) {         root->right = insert(root->right, item);     }     else if (item == root->data) {         cout << "this exists" << endl;     }     root = balance(root);     return root; } 

main function:

int main() {     avl_node* roott;     int item;        avltree avl;     avltree kk;                    root = avl.insert(root, item);               roott = kk.insert(roott, item);     kk.display(roott, 1);     return 0; } 

// in main root = avl.insert(root, item);  // in avltree::insert avl_node* avltree::insert(avl_node* root, int item) {     if (root == null) { // <- here 

at here, using ::root not initialized. @ point, ::root points random address, not want.

write

}*root = null; 

and

avl_node* roott = null; 

to initialize pointers.
need initialize int item in main, presumably 0.

int item = 0; 

Comments

Popular posts from this blog

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -

ubuntu - Selenium Node Not Connecting to Hub, Not Opening Port -