Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    codice:
    template  < class TIPO> class Albero_generico{
    
    	struct nodo {
    		TIPO info;
    		nodo * figlio; 
    		nodo *fratello; 
    	};
    
    	typedef struct nodo * nodo_ptr; 	
    	
    	nodo_ptr root; 
    	void del(nodo_ptr&); 
    	nodo_ptr find (const nodo_ptr&, const TIPO&); 	
    
    
    public:
    	Albero_generico();
    	bool inserisci_figlio(const TIPO&, const TIPO&); 
    	~Albero_generico();
    	nodo_ptr p ();
    };
    
    template <class TIPO> 
    Albero_generico<TIPO>::nodo_ptr 
    Albero_generico<TIPO>:: find( const nodo_ptr& tree , const TIPO){}
    Io stavo inziando a scrivere la classe albero generico cosi ma quando scrivo la find mi da il seguente errore:
    error: expected constructor, destructor, or type conversion before 'Albero_generico'


    Mi potete aiutare???

  2. #12
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    19
    Benissimo....fino a questo punto mi è chiaro...

    L' "unica" VVoVe: cosa che non mi è molto chiara è come fare aggiungere nuovi nodi all'albero PRINCIPALE...
    La struct del nodo è questa giusto?

    struct nodo{
    "xxxx" info
    nodo* figlio;
    nodo*fratello;
    };

    Il mio problema è ke nn so cosa metterci al posto di "xxxx"....

    THANKS

  3. #13
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    27
    Originariamente inviato da PeppePes88
    codice:
    template  < class TIPO> class Albero_generico{
    
    	struct nodo {
    		TIPO info;
    		nodo * figlio; 
    		nodo *fratello; 
    	};
    
    	typedef struct nodo * nodo_ptr; 	
    	
    	nodo_ptr root; 
    	void del(nodo_ptr&); 
    	nodo_ptr find (const nodo_ptr&, const TIPO&); 	
    
    
    public:
    	Albero_generico();
    	bool inserisci_figlio(const TIPO&, const TIPO&); 
    	~Albero_generico();
    	nodo_ptr p ();
    };
    
    template <class TIPO> 
    Albero_generico<TIPO>::nodo_ptr 
    Albero_generico<TIPO>:: find( const nodo_ptr& tree , const TIPO){}
    Io stavo inziando a scrivere la classe albero generico cosi ma quando scrivo la find mi da il seguente errore:
    error: expected constructor, destructor, or type conversion before 'Albero_generico'


    Mi potete aiutare???

    il problema secondo me peppepes88 è che te nn ci capisci una minchia!!!!


    AHHAHAHAHA peppe so zu ste...

    anche tu qua vedo

    cmq io nn non lo sto facendo in quel modo...ma completamente diverso...guarda qua l'inzio dell'albero..

    codice:
    ///	@brief Classe base per le operazioni fondamentali del linguaggio.
    ///
    ///	La classe implementa la struttura base dell' albero sintattico insieme
    ///	alle operazioni principali del linguaggio : operatore binario (più e meno),
    ///	operatore unario e moltiplicazione.Si andrà ad appoggiare alla classe TExpression
    /// 	per il riconoscimento delle espressioni più complesse e la generazione della totalità
    ///	dell'albero.
    class TreeNode
    	{
    	protected:
    
    		TreeNode() {};
    
    	public:
    
    		virtual ~TreeNode() {};
    		virtual float eval() = 0;
    	};
    e poi per esempio l'operatore unario sarà...

    codice:
    class UNOP : public TreeNode
    	{
    	protected:
    		
    		TreeNode *operand;
    
    		UNOP ( TreeNode *o) : operand( o ) {}
    
    		~UNOP()
    			{
    			delete operand;
    			}
    
    };
    e in particolare l'operatore ++x sarà :

    codice:
    ///
    ///	Classe operatore unario prefisso ' ++x ' che in ingresso prende un nodo concernente un value oppure
    ///	un' operazione ulteriore.
    class UNPP : public UNOP
    	{
    	public:
    		UNPP ( TreeNode *op ) : UNOP ( op ) {};
    	
    		float eval()
    			{	
    			return ( operand->eval() + 1 );
    			}
    };
    così devi fare per tutti gli altri operatori...

    questo è il costruttore degli operatore e ei nodi...poi devi fare il parser che riconosci operatori e blabblabla...

  4. #14
    No aspetta si parlava di alberi generici, percui l'idea di Peppe è corretta.

    codice:
    template <class T> class BinaryTree {
       
       BinaryTree *left;
       BinaryTree *right;
       T label;
       
       public:
       TreeNode();
       ~TreeNode();
       void setLeft(BinaryTree *left);
       void setRight(BinaryTree *right);
       void setLabel(T label);
       BinaryTree* getLeft();
       BinaryTree* getRight();
       T getLabel();
       
    }
    poi se uno vuole aggiungere metodi, come eval, a solo da ereditarla.

  5. #15
    si ma questa è utile per implementare l'albero generico, usando il metodo figlio fratello...

  6. #16
    Ste ma che serve la funzione eval?

  7. #17
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    27
    nulla nulla nn la guardare era solo pr fare delle prove per vedere se creava i nodi e risolveva le operazioni in modo corretto...


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.