fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct no {
  5. int dado;
  6. struct no *prox;
  7. };
  8.  
  9. typedef struct no criano;
  10. typedef criano *no_pont;
  11. int tam;
  12.  
  13. //void cria_Fila(no_pont *head, no_pont *tail);
  14. int fila_Vazia(no_pont head);
  15. void insere_Fila(no_pont *head, no_pont *tail, int valor);
  16. int retira_Fila(no_pont *head, no_pont *tail);
  17. void imprime_Fila(no_pont atual);
  18.  
  19. int main() {
  20. no_pont head=NULL;
  21. no_pont tail=NULL;
  22. insere_Fila(&head, &tail, 52);
  23. insere_Fila(&head, &tail, 21);
  24. insere_Fila(&head, &tail, 532);
  25. imprime_Fila(head);
  26.  
  27. return 0;
  28. }
  29.  
  30. int fila_Vazia(no_pont head) {
  31. return head==NULL;
  32. }
  33.  
  34. void insere_Fila(no_pont *head, no_pont *tail, int valor) {
  35. no_pont novo;
  36. novo = (no_pont)malloc(sizeof(criano));
  37.  
  38. if(novo!=NULL) {
  39. novo->dado=valor;
  40. novo->prox=NULL;
  41.  
  42. if(fila_Vazia(*head)) {
  43. *head=novo;
  44. } else {
  45. (*tail)->prox=novo;
  46. }
  47.  
  48. *tail = novo;
  49. } else {
  50. printf("%d nao inserido. Nao ha espaco na memoria\n",valor);
  51. }
  52. tam++;
  53. }
  54.  
  55. void imprime_Fila(no_pont atual) {
  56. if(atual == NULL) {
  57. printf("A fila esta vazia\n");
  58. } else {
  59. printf("A fila e: ");
  60.  
  61. while(atual!=NULL) {
  62. printf("%d ",atual->dado);
  63. atual=atual->prox;
  64. }
  65.  
  66. printf("NULL\n\n");
  67. }
  68. }
  69.  
Success #stdin #stdout 0s 9424KB
stdin
Standard input is empty
stdout
A fila e: 52  21  532  NULL