elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Duda] Colas en C (Con cadenas).
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] Colas en C (Con cadenas).  (Leído 3,439 veces)
Alan2104

Desconectado Desconectado

Mensajes: 1


Ver Perfil
[Duda] Colas en C (Con cadenas).
« en: 6 Noviembre 2013, 22:08 pm »

Hola chicos espero puedan ayudarme...

Lo que pasa es que tengo este codigo "Colas en C" Que ya logre implementar.

Pero ahora, necesito implementarlo para que en vez de manejar caracteres, maneje cadenas, ya le he intentado cambiando declarando los datos en cadenas, cambiando %c por %s, con gets, con puts, pero no me arroja los resultados correctos, por favor ayúdenme gracias de antemano.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct queueNode
  4. {
  5.    char data;
  6.    struct queueNode *nextP;
  7. };
  8. typedef struct queueNode QUEUENODE;
  9. typedef QUEUENODE *QUEUENODEP;
  10. void printfQUEUE(QUEUENODEP);
  11. int isEmpty(QUEUENODEP);
  12. char dequeue(QUEUENODEP*, QUEUENODEP*);
  13. void enqueue(QUEUENODEP*, QUEUENODEP*, char);
  14. void menu (void);
  15. int main()
  16. {
  17.    QUEUENODEP headP=NULL,tailP=NULL;
  18.    int choice;
  19.    char item;
  20.    menu();
  21.    printf("\n\nElige una opcion: ");
  22.    scanf("%d",&choice);
  23.    while(choice!=3)
  24.    {
  25.        switch(choice)
  26.        {
  27.            case 1:
  28.                printf("\nTeclea un caracter: ");
  29.                scanf("%c",&item);
  30.                enqueue(&headP,&tailP,item);
  31.                printfQUEUE(headP);
  32.            break;
  33.            case 2:
  34.                if(!isEmpty(headP))
  35.                {
  36.                    item=dequeue(&headP,&tailP);
  37.                    printf("\n%c ha sido borrado",item);
  38.                }
  39.                printfQUEUE(headP);
  40.            break;
  41.        }
  42.        printf("\nElige una opcion: ");
  43.        scanf("%d",&choice);
  44.    }
  45.    printf("\nFin de la ejecucion: \n");
  46.    return 0;
  47. }
  48. /*Definicion de funciones*/
  49. void menu(void)
  50. {
  51.    printf("Las diferentes opciones son: \n");
  52.    printf("\n1.- Insertar elemento: ");
  53.    printf("\n2.- Eliminar elemento: ");
  54.    printf("\n3.- Salir. ");
  55. }
  56.  
  57. void enqueue(QUEUENODEP *headP,QUEUENODEP *tailP,char value){
  58.    QUEUENODEP newP;
  59.        newP = malloc(sizeof(QUEUENODE));
  60.        if(newP != NULL){
  61.            newP->data = value;
  62.            newP-> nextP = NULL;
  63.            if(isEmpty(*headP))
  64.                *headP=newP;
  65.                else
  66.                (*tailP)->nextP=newP;
  67.            *tailP = newP;
  68.        }
  69.        else
  70.        printf("\n%c No se inserto. No hay memoria",value);
  71.        }
  72.  
  73. char dequeue(QUEUENODEP *headP, QUEUENODEP *tailP)
  74. {
  75.    char value;
  76.    QUEUENODEP temp;
  77.    value=(*headP)->data;
  78.    temp=*headP;
  79.    *headP=(*headP)->nextP;
  80.    if(*headP==NULL)
  81.        *tailP=NULL;
  82.        free(temp);
  83.        return value;
  84. }
  85.  
  86. int isEmpty(QUEUENODEP headP)
  87. {
  88.    return headP==NULL;
  89. }
  90.  
  91. void printfQUEUE(QUEUENODEP currentP)
  92. {
  93.    if(currentP==NULL)
  94.    {
  95.        printf("\n\nLa Cola esta vacia: \n");
  96.    }
  97.    else
  98.    {
  99.        printf("\n\nLa cola es: \n");
  100.        while(currentP!=NULL)
  101.        {
  102.            printf("%c-> ",currentP->data);
  103.            currentP=currentP->nextP;
  104.        }
  105.        printf("\nNULL\n");
  106.    }
  107. }
  108.  


En línea

edr89

Desconectado Desconectado

Mensajes: 105


Ver Perfil
Re: [Duda] Colas en C (Con cadenas).
« Respuesta #1 en: 7 Noviembre 2013, 01:48 am »

no me arroja los resultados correctos

Prueba a limpiar el buffer cada que uses scanf.
Código
  1. while(getchar()!='\n');


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con cadenas
Programación Visual Basic
_LooSeR_ 6 2,545 Último mensaje 31 Marzo 2008, 18:21 pm
por ~~
[Duda] Tratado de cadenas.
PHP
skyweb07 9 3,538 Último mensaje 5 Abril 2010, 05:52 am
por KrossPock
Duda cadenas C
Programación C/C++
juanpalomo098 4 2,036 Último mensaje 7 Diciembre 2016, 01:04 am
por juanpalomo098
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines