Oppure

Loading
03/09/09 12:58
zEuSsE
#include <iostream>
using namespace std; 



class node{
	node* right;
	node* left;
	node* p;
	int key;
	public:
		node(){};
		node(node* r,node* l,node* f,int key){};		
		//operazioni di set
        void set_r(node* r){right=r;};
		void set_l(node* l){left=l;};
		void set_p(node* f){p=f;};
		void set_k(int k){key=k;};
		//operazioni di get
		node* get_r(){return right;};
		node* get_l(){return left;};
		node* get_p(){return p;};
		int get_k(){return key;};
		
};

class tree{
      node* root;
      public:
      		 tree(){/*costruttore*/};
  		     ~tree(){/*distruttore*/};
             node* search(int x){};
             bool insert(node* z);
             bool cancel(int x){/*anche la cancellazione è fatta in base ad una chiave*/};
};


bool tree::insert(node* z){
     node* x=root;
     node* y=0;
     while(x!=0) {
                 y=x;
                 if (x->get_k()<z->get_k()) x=x->get_r();
                 else x=x->get_l();
                 }
     z->set_p(y);
     if (y=0) root=z;
     else if (y->get_k()<z->get_k()) root->set_r(z);
     else root->set_l(z);
};
   
int main(){
    node* n;
    n=new node(0,0,0,5);
    tree T;
    T.insert(n);
};


Viene compilato tutto bene senza errori però nel debug mi dà un errore di segmentazione

help!! :d
aaa
03/09/09 23:53
Matthew
Il fatto che venga compilato correttamente non vuole dire nulla. Significa solo che non ci sono errori di sintassi. Il problema è che non allochi la memoria necessaria a creare il nuovo oggetto...
aaa