0

Ayuda ¿Como puedo arreglar este codigo para que funcione?

Tengo que realizar un semaforo, con una lista circular simplemente enlazada. Cuando le envio el color, me imprime un caracter sin sentido, y si lo trabajo como cadena, en pantalla me imprime "media tek" o algo parecido. https://code.sololearn.com/cBbwL6MBn3vl/?ref=app

28th Nov 2018, 8:06 AM
LuisRSA24
LuisRSA24 - avatar
1 ответ
+ 3
Además, debe implementar una función para eliminar nodos, de lo contrario tiene una pérdida de memoria. #include <iostream> using namespace std; struct nodo { char *color; // <-- nodo *sig; nodo() { color = NULL; // <-- sig = NULL; } nodo(char *x) // <-- { color = x; sig = NULL; } }; class semaforo { private: nodo *inicio; public: void insertar(); void imprimir(); semaforo() { inicio = NULL; } }; void semaforo::insertar() { char *v = "verde"; // <-- if (inicio == NULL) { inicio = new nodo(v); inicio->sig = inicio; } } void semaforo::imprimir() { nodo *aux = inicio; do { cout << aux->color << endl; aux = aux->sig; } while (aux != inicio); } int main() { semaforo a; a.insertar(); a.imprimir(); return 0; } ~~~~~~~ Output: verde
28th Nov 2018, 9:03 AM
Babak
Babak - avatar