Dev - C++ - Pila Generica

 
Vista:

Pila Generica

Publicado por Federico Martinez (1 intervención) el 30/04/2007 00:29:37
Hola tengo este codigo, segun yo deberia funcionar pero al momento de compilar aparecen errores como:

, Expected
Multiple declaration for stackNode
Earlier declaration of stackNode
Type Name expected
Declaration Missing

typedef stackNode *stackNodePtr; // <----AQUI APARECE ", EXPECTED" Y "EARLIER DECLARATION

class stackNode{ // <---AQUI "MULTIPLE DECLARATION"
//Representation
void *info;
stackNodePtr next; // <---AQUI "TYPE NAME EXPECTED" Y "DECLARATION MISSING"
//Specification
void init(void *capturedInfo, int infoSize, stackNodePtr nextNode);
void yieldInfo(void *yieldedInfo, int infoSize);
void clear(int infoSize);
};

class stack{
//Representation
stackNodePtr top;
int size, maxSize, infoSize;
bool lastOpOk;
statusType status;
//Specification
/*********Constructor Methods********/
void init(int itemSize, int maxItems);
void clear();
void push(void *item, int itemSize);
void pop(void *item, int itemSize);
/*********Selector Methods***********/
bool isEmpty();
bool isFull();
bool isStatusOk();
int itemsIn();
void showStatus(FILE *f);
};

no se si este mal el modo en que ocupo el typedef que segun yo es TYPEDEF <TIPO> <ALIAS>
en caso de que sea apuntado seria TYPEDEF <TIPO> <*ALIAS> por favor si saben que hago mal, echenme una mano, no encuentro porq me da problemas....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pila Generica

Publicado por Julio Cesar Reyes Aguayo (1 intervención) el 06/05/2007 15:23:11
Yo tengo éste código, no está completo, pero espero que te ayude:

//**Nodo de la pila**
class NodoPila{
void *info; //campo dato genérico
NodoPila *sig; //apuntador al siguiente elemento
.... //Specification.

y la primer linea, yo la puse después:

NodoPila *p=NULL;

éste sería la sustitución de:

StackNode *stackNodePtr;

puse igual a NULL porque es peligroso dejar apuntadores que no se sabe hacia adonde apuntan, así que mejor apunte a nada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

A ver si le atine...

Publicado por Antonio (1 intervención) el 17/05/2007 10:06:04
Yo no se mucho de progra, pero creo que te convendria utilizar tu typedef... ¿como?:

typedef stackNode *stackNodePtr; // <----AQUI APARECE ", EXPECTED" Y "EARLIER DECLARATION

class stackNode{ // <---AQUI "MULTIPLE DECLARATION"
//Representation
void *info;
stackNodePtr next; // <---AQUI "TYPE NAME EXPECTED" Y "DECLARATION MISSING"
//Specification
void init(void *capturedInfo, int infoSize, stackNodePtr nextNode);
void yieldInfo(void *yieldedInfo, int infoSize);
void clear(int infoSize);
};

en vez de esto, intenta esto:

typedef class stackNode{
void *info;
stackNode *siguiente;
void init(void *capturedInfo, int infoSize, stackNodePtr nextNode);
void yieldInfo(void *yieldedInfo, int infoSize);
void clear(int infoSize);
}nodo;

//...y ahora vas a crear punteros al tipo nodo:

nodo *stackNodePtr=NULL// inicializar a NULL es importantisimo...

a por cierto, esta pila es la paul hynduk, si de verdad quieres tener una logica en estructura y representacion de datos bien definida no dudes en mandarme un mensajin y entre los dos nos hacemos bolas... adios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar