Buenas chicos, me surgio una duda, como debo pasar un nodo dentro de un procedimiento si se da el caso de que quiero borrarlo ahi? por valor o referencia? A mi se me hace que por valor/referencia da lo mismo ustedes que dicen?
//Definicion de la estructura
const int MAX=8;
typedef struct tnodo *pnodo;
typedef struct tnodo{
int dato;
pnodo sig;
};
typedef struct tpila{
pnodo inicio;
pnodo final;
int contador;
};
void binario(int n)
{
tpila pila;
pnodo nuevo, eliminado;
init_stack(pila);
while(n>0){
crear_nodo(nuevo,n%2);
push_stack(pila,nuevo);//Bueno aqui llama a push_stack(estructura pila, nodo nuevo);
n/=2;
}
cout<<"Binario: ";
while(empty_stack(pila)==false){
eliminado=pop_stack(pila);
cout<<eliminado->dato;
delete(eliminado);
}
cout<<endl;
}
//Aca es donde me vino la duda
void push_stack(tpila &pila, pnodo nuevo)//Justo aquí
{
if(full_stack(pila)==true){
cout<<"Pila llena"<<endl;
delete(nuevo);//<---Y aquí
}
else{
if(pila.inicio==NULL){
pila.inicio=nuevo;
pila.final=nuevo;
}
else{
pila.final->sig=nuevo;
pila.final=nuevo;
}
pila.contador++;
}
}