Salve ragazzi vi ringrazzio per il vostro aiuto e ne avrei ancora bisogno, ho ancora un problema sono riuscito a implementarmi l'algoritmo di huffmann(salvo orrori) ma ho ancora un problema, dopo che implemento l'albero come mi creo il mio nuovo file compresso?

Vi posto il codice dell'algoritmo non tralasciando niente errori compresi:
codice:
int main (int argc, char * const argv[]) {
        char nomefile[30];  //nome del file
        ifstream lettura;  //creo un oggetto ifstream(lettura dei dati da un file sequenziale)
    
        map<const char, int > freqMap;  //map(chiave,valore)
        map<const char, int > ::iterator it;
        priority_queue< HuffNode, vector<HuffNode>, greater<HuffNode> > q;//???????
        HuffNode *hNode;

        char ch;
    
        cout << " Inserisci il nome del File.  \n";
        cin >> nomefile;
        lettura.open(nomefile);

        if (lettura.fail()){  //verfica se c'è un errore nell'apertura del file
                cout << "Errore nell'apertura del file \n";
                exit(1);
        }

        inStream.get(ch);
        while( !inStream.eof()) {  //verifica se siamo alla fine del file
                it = freqMap.find(ch);
                if (it == freqMap.end())
                        freqMap[ch] = 1;
                else
                        freqMap[ch]++;
                inStream.get(ch);
        }

        int numSym = 0; //Conta il numero di simboli

        it = freqMap.begin();
        //copia i valore della map nella coda di priorità
        while(it != freqMap.end()){
                hNode = new HuffNode(it->first, it->second);
                q.push(*hNode);
                numSym += it->second;
                it++;
        }
        //svuota la map
        freqMap.clear();
        //mi creo l'albero di huffman
        while(q.size>1){
                        HuffNode *left = new HuffNode( q.top() );
                        q.pop();
                        HuffNode *right = new HuffNode( q.top() );
                        q.pop();
                        q.push( HuffNode( left, right ) );
                        }
        
}
}
HELP ME!