Implementacion de una cola mediante lista enlazada circular
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | /* Implementación de una cola mediante lista enlazada circular */ /* ----------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> /* declaracion */ /* ----------- */ struct tcola { int clave; struct tcola *sig; }; /* prototipos y codificación */ /* ------------------------- */ void crear(struct tcola **cola) { *cola = NULL;} int vacia(struct tcola *cola) { return (cola == NULL);} void encolar(struct tcola **cola, int elem) { struct tcola *nuevo; nuevo = (struct tcola *) malloc(sizeof(struct tcola)); nuevo->clave = elem; if (*cola == NULL) nuevo->sig = nuevo; else { nuevo->sig = (*cola)->sig; (*cola)->sig = nuevo; } (*cola) = nuevo;} void desencolar(struct tcola **c1, int *elem) { struct tcola *aux; *elem = (*c1)->sig->clave; if ((*c1) == (*c1)->sig) { free(*c1); *c1 = NULL; } else { aux = (*c1)->sig; (*c1)->sig = aux->sig; free(aux); } } /* Programa de prueba */ /* ------------------ */#include <stdio.h> int main(void) { struct tcola *cola; int elem; crear(&cola); if (vacia(cola)) printf("nCola vacia!"); encolar(&cola, 3); desencolar(&cola, &elem); return 0; } |
¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C <code lang="c">Código en C</code>
- Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.
De esta manera el código coloreas el código.
Otro punto importante para muchos que crees que te he ignorado: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios así como también cambiar mis condiciones en el momento que yo lo requiera.
¿Si estas de acuerdo? Adelante! que ya te he quitado bastante tiempo leyendo esta basura :)