hi. I am working on binary tree, but jst want to see is everything looking good so far.
code:
i need one more function, which will take me back to the root, but don't know how to write it.Code:#include<iostream> #include<stdio.h> #include <string> using namespace std; struct node { string key_value; node *left; node *right; }*p_akt; class btree { public: btree(); ~btree(); void create(); bool Lchild(node); bool Rchild(node); void make(node,string question,string animal); void data(node *p); void root(); void Parent(node *p,node * root); int brojac; //void insert(string key); //node *search(string key); //void destroy_tree(); private: }; btree::btree() { p_akt=0; brojac=0; // root=NULL; } void btree::create() { node * temp=p_akt; } void btree::make(node,string question,string animal) { node * temp=p_akt; temp=p_akt; temp->left=new node; temp->left->key_value= question; temp->left->right=new node; temp->left->right->key_value= animal; } bool Lchild(node) { node * temp = p_akt; if(temp->left!=NULL) { temp=temp->left; return true; } else return false; } bool Rchild(node *p) { node * temp = p; if(temp->right!=NULL) { temp=temp->right; return true; } else return false; } void btree::data(node *p) { cout<< (string)p->key_value<<endl; } void btree::Parent(node *p,node *root) { node * temp = root; if (temp==NULL) return; else if ((temp->left!=NULL) || (temp->right!=NULL)) { if((temp->left->key_value==p->key_value) || (temp->right->key_value==p->key_value)) temp=p; } else { node * temp2=temp; temp=temp->left; Parent(p,temp); temp2=temp->right; Parent(p, temp2); } }



LinkBack URL
About LinkBacks



