| |||
que alguien me ayude por favor a solucionar este problema me mandaron hacer un programa de listas donde debo insertar un valor al principio y al final de la lista sera que alguien me puede ayudar hoy mismo en esto el programa tiene que ser c++ |
| |||
Respuesta: que alguien me ayude por favor a solucionar este problema espero y esto te pueda servir http://www.programacionfacil.com/estructura_datos_csharp:listas_enlazadas ... esta en C# |
| |||
Respuesta: que alguien me ayude por favor a solucionar este problema bueno gracias por la ayuda el programa es este pero no me copila soy nuevo en esto y no entiendo muy bien programación espero que me ayude #include <stdio.h> #include <stdlib.h> #include <string.h> #define T_NOM 101 #define T_EDAD 3 struct persona { char nom[100]; char edad[3]; struct persona *siguiente; }; #define LEE_CAD(c,n) { int i=0; \ c[i]=getchar();\ while((c[i]=='\n') || (c[i]=='\t')) c[i]=getchar();\ while ((c[i]!='\n') && (i < (n-1))){ \ i++;\ c[i]=getchar(); }\ c[i]='\0'; } #include "estructura_de_datos.h" int main(){ struct persona *lista=NULL; struct persona *nodo; int op; void alta_inicio(); void alta_final(); void recorrer_lista(); do{ do{ printf("Elija una opción:\n"); printf("1--> Añadir al principio.\n"); printf("2--> Añadir al final.\n"); printf("3--> Recorrer la lista.\n"); printf("4--> Salir.\n"); scanf("%d",&op); }while((op < 1) || (op > 4)); if(op != 4) switch(op){ case 1: { alta_inicio(&lista);break;} case 2: { alta_final(&lista);break;} case 3: { recorrer_lista(&lista);break;} } }while(op != 4); exit(0); } void alta_inicio(struct persona **lista){ struct persona *nuevo_nodo; nuevo_nodo=(struct persona *)malloc(sizeof(struct persona)); if(nuevo_nodo != NULL){ nuevo_nodo->siguiente = *lista; *lista = nuevo_nodo; printf("Nombre: "); LEE_CAD(nuevo_nodo->nom,100); printf("Edad: "); LEE_CAD(nuevo_nodo->edad,3); } } void alta_final(struct persona **lista){ struct persona *nuevo_nodo; struct persona *nodo_aux; nuevo_nodo=(struct persona *)malloc(sizeof(struct persona)); if(nuevo_nodo != NULL){ nodo_aux = *lista; while(nodo_aux->siguiente != NULL) nodo_aux = nodo_aux->siguiente; nodo_aux->siguiente=nuevo_nodo; nuevo_nodo->siguiente=NULL; LEE_CAD(nuevo_nodo->nom,100); LEE_CAD(nuevo_nodo->edad,3); } else printf("Error al tomar memoria del nuevo nodo.\n"); } void recorrer_lista(struct persona **lista){ struct persona *nodo_aux; nodo_aux = *lista; while(nodo_aux != NULL){ printf("%s\n",nodo_aux->nom); printf("%s\n",nodo_aux->edad); nodo_aux = nodo_aux->siguiente; } } |
| |||
Respuesta: que alguien me ayude por favor a solucionar este problema Dices que el programa no te compila, pero no indicas qué errores te da. A primera vista, veo que has definido una función entera como una macro (la macro LEE_CAD). Debes tener en cuenta que las macros se expanden al compilar (el preprocesador las sustituye antes de pasar al compilador), puedes llevarte sorpresas muy desagradables ya que pueden aparecer errores muy difíciles de localizar aunque tu macro parezca estar bien. En tu caso tampoco está bien: Si pasas parámetros a la macro deben ir, cada uno, entre paréntesis, no hay tipos por ninguna parte, etc., con lo que vete a saber qué es lo que ve el compilador al final. Yo te recomiendo que la implementes como función, con su prototipo y sus parámetros convenientemente declarados. Deja las macros complicadas (como sería esta) para cuando "seas mayor". De todos modos, conviene que indiques qué sistema operativo y compilador utilizas, y cuáles son los errores que te reporta. Esto ayudará a precisar mejor la respuesta. Saludos, |
| |||
Respuesta: que alguien me ayude por favor a solucionar este problema oye estoy haciendo es programa con el mismo menu bueno parecido en lenguaje c++ se trata de lo mismo del otro incrtar al final de la lista y al principio sera voy bien?? #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> typedef struct nodo { int dato; struct nodo * siguiente; }tipoNodo; tipoNodo *nuevo_elemento(); void crear(); void insertar(); void insertar_inicio(); void insertar_final(); void presentar(); int main(){ *printf("Elija una opción:\n"); * * * * * * * *printf("1--> Añadir al inecio.\n"); * * * * * * * *printf("2--> Añadir al final.\n"); * * * * * * * *printf("3--> precentar la lista.\n"); * * * * * * * *printf("4--> Salir.\n"); * * * * * * * *scanf("%d",&op); * * * * * * }while((op < 1) || (op > 4)); * * * * *if(op != 4) * * * * * * * switch(op){ case:1 void crear(); |
| |||
Respuesta: que alguien me ayude por favor a solucionar este problema disculpe usted no tienes un programa que sea semejante ql que yo necesito lo que pasa es que en realida lo necesito para hoy por es un proyecto y no he podido hacer ese programa |
Etiquetas: |