03/10/2004, 12:55
|
| | Fecha de Ingreso: abril-2002
Mensajes: 6
Antigüedad: 22 años, 7 meses Puntos: 0 | |
Instru, muchas gracias, sé que no están aqui para resolver tareas ni mucho menos, lo que sucede es que es mi primer acercamiento a las listas enlazadas y al C++, es algo muy dificil ya que tengo que aprender C y las listas a como dé lugar, por mí mismo, eso no es problema, el problema es que tengo que aprenderlo antes de este martes (Tengo un profe bastante tirano), ayer estuve intentando resolver el problema pero no he podido solucionarlo, me gustaría mandarte el código para que lo veas y me ayudes a corregirlo, el problema es que cada vez que le ingreso el valor a un nodo me imprime el numero 12, algo muy raro.
Este es el código del primer algoritmo:
#include <stdio.h>
#include <alloc.h>
#include <conio.h>
struct nodo {
int val;
struct nodo *siquiente;
};
struct nodo *primero, *ultimo;
void anadir_elemento() {
struct nodo *nuevo;
nuevo = (struct nodo *) malloc (sizeof(struct nodo));
if (nuevo == NULL)
printf("No hay memoria Disponible!\n");
printf("\n Nuevo elemento \n");
printf("Ingrese un valor: ");
scanf("%d", nuevo->val);
nuevo->siquiente = NULL;
if(primero == NULL){
printf("Primer elemento\n");
primero = nuevo;
ultimo = nuevo;
}
else {
ultimo->siquiente = nuevo;
ultimo = nuevo;
}
}
void mostrar_lista() {
struct nodo *auxiliar; /* lo usamos para recorrer la lista */
int i;
i=0;
auxiliar = primero;
printf("\nMostrando la lista completa:\n");
while (auxiliar!=NULL) {
printf("%d ", auxiliar->val);
auxiliar = auxiliar->siquiente;
i++;
}
if (i==0) printf( "\nLa lista está vacía!!\n" );
}
void mostrar_menu() {
printf("\n\nMenú:\n=====\n\n");
printf("1.- Añadir elementos\n");
printf("2.- Mostrar la lista\n");
printf("3.- Salir\n\n");
printf("Escoge una opción: ");
fflush(stdout);
}
int main() {
char opcion;
primero = (struct nodo *) NULL;
ultimo = (struct nodo *) NULL;
do {
mostrar_menu();
opcion = getch();
switch ( opcion ) {
case '1': anadir_elemento();
break;
case '2': mostrar_lista();
break;
case '3': printf("Salida del programa principal\n");
default: printf( "Opción no válida\n" );
break;
}
} while (opcion!='3');
} |