Título: Ayuda con colas en c++ Publicado por: oscar.trevino en 5 Marzo 2017, 04:22 am Hola, tengo una duda en un programa que ingrese datos al inicio de la cola y elimine al final. Éste es mi código:
#include<stdio.h> #include<cstdlib> #include<conio2.h> struct nodo{ int dato; int *p,*q,*t; }; int op,num,p,s,q,n,t; void insertar(); void eliminar(); void finalizar(); main() { do { printf("1.- Insertar datos\n"); printf("2.- Borrar datos\n\n"); printf("Que opcion desea?"); scanf("%d",&op); switch(op) { case 1: insertar(); break; case 2: eliminar(); break; case 3: finalizar(); break; } } while(op!=4); finalizar(); } void insertar() { p=malloc(sizeof(struct nodo)); printf("Captura dato..."); scanf("%d",&num); p->info=num; p->liga=NULL; printf("Mas nodos? [s/n]"); while(getche()==s){ printf("Captura dato..."); scanf("%d",&num); q->info=num; q->liga=p; p=q; printf("Mas nodos?" [s/n]?); } } void eliminar() { if(p==NULL) { printf("Vacío"); } else { q=p; if(p->liga==NULL) { p=NULL; } else { while(q->liga!=NULL) { t=q; q=q->liga; } t->liga=NULL; free(q); } } } Y los errores que me marca son los siguientes: 46 4 C:\Users\Oscar Treviño\Desktop\Colass.cpp [Error] base operand of '->' is not a pointer 55 8 C:\Users\Oscar Treviño\Desktop\Colass.cpp [Warning] NULL used in arithmetic [-Wpointer-arith] 74 10 C:\Users\Oscar Treviño\Desktop\Colass.cpp [Error] invalid conversion from 'int' to 'void*' [-fpermissive] Literal, tengo todo el día con este programa, me podrían ayudar? Título: Re: Ayuda con colas en c++ Publicado por: MAFUS en 5 Marzo 2017, 12:58 pm Esos errores te que indica el compilador precisamente te marcan el fallo.
Usas variables globales que son enteros p y q como punteros a la estructura. Esto es un problema de tipos que deberías solucionar. Por otra parte usas los miembros de la estructura info y liga cuando estos no existen en ella. En tu estructura tienes definidos los miembros int dato, *p, *q y *t. Por cierto *p, *q y *t son punteros a entero, no deberían ser usados para guardar la dirección de la estructura dato, como intuyo pretendes hacer. |