cordial saludo, he leído las recomendaciones ejemplos y mas ejemplos y no he logrado entender a cabalidad las listas , tengo un problema con una necesito que reciba una estructura y la imprima, hasta el momento no lo he conseguido.
quisiera saber que debo cambiar en el codigo y si no es mucha molestia explicado para a ver si de una vez entiendo las benditas listas. gracias
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
typedef int tipo;
struct estudiante
{ char nombre[50];
char apellido[50];
char telefono[50];
char edad[50];
} ;
struct nodo{ //esta es la estructura del nodo
tipo s_dato;
nodo* s_sig;
};
void crear(nodo**);
void insertar(nodo**, tipo);
void quitar(nodo**, tipo);
void recorrer(nodo**);
int buscar();
int main()
{
nodo* cabeza;
int dat;
int dato;
char op;
struct estudiante x;
crear(&cabeza);
system("pause");
df: //tambien se puede hacer con do while
cout << "1.-INSERTAR" << endl;
cout << "2.-VER" << endl;
cout << "3.-QUITAR" << endl;
op = getch();
switch(op)
{
case '1':
cout << "introduce un nombre: ";
scanf("%d",&x->nombre);
cout << "introduce un apellido: ";
scanf("%d",&x->apellido);
cout << "introduce un telefono: ";
scanf("%d",&x->telefono);
cout << "introduce un edad: ";
scanf("%d",&x->edad);
insertar(&cabeza, dat);
system("pause");
goto df;
case '2':
recorrer(&cabeza);
system("pause");
goto df;
case '3':
cout << "introduzca dato a quitar";
cin >> dato;
quitar(&cabeza,dato);
goto df;
}
}
void crear(nodo** siguiente)
{
*siguiente = NULL;
}
void insertar(nodo**siguiente, tipo dato)
{
struct estudiante *x;
nodo* aux;
x=s_sig= NUll;
aux = estudiante;
aux->s_dato = dato;
aux->s_sig = (*siguiente);
*siguiente = aux;
}
void quitar(nodo**siguiente, tipo dato)
{
nodo* ptr,*ant;
ptr = *siguiente;
ant = NULL;
while (ptr!= NULL && ptr->s_dato!=dato)
{
ant = ptr;
ptr = ptr->s_sig;
}
if ( ptr->s_dato!=dato)
{
cout << "dato no existe";
}
else
ant->s_sig = ptr->s_sig;
delete ptr;
}
void recorrer(nodo**siguiente)
{
nodo* ptr;
ptr = *siguiente;
while (ptr!= NULL)
{
cout << ptr->s_dato << endl; // aqui es donde necesito mostrar la estructura
ptr=ptr->s_sig;
}
}
Si pueden me recomendarían algún tutorial donde expliquen el uso listas con ejemplos pero sencillos, que no tengan nombres extraños pues me paso descifrando cual es el puntero para siguiente, cual es el de inicio,por favor una ayuda, que me saque desde hueco de oscuridad.
https://secure.wikimedia.org/wikipedia/es/wiki/Lista_%28inform%C3%A1tica%29#Operaciones_sobre_listas_enlazadas
Dulces Lunas!¡.
Cursos de calidad sobre listas vinculadas y arboles binarios (pero por desgracia todos en ingles) se pueden descargar de la pagina Stanford CS Education Library (http://cslibrary.stanford.edu/).
Un saludo
Cordial saludo, bueno empezare el estudio de los recomendados, pero una ayudita no hubiese quedado mal, de igual forma les agradezco mucho.