Dev - C++ - Listas enlazadas

 
Vista:
sin imagen de perfil

Listas enlazadas

Publicado por Jorge (16 intervenciones) el 09/09/2015 05:36:28
Este programa lo he creado en C , pro no domino mucho el Dev C++ si pueden ayudarme a retificarlo.
Favor su ayuda en el codigo en C , si esta mal corregir.
Gracias
Jorge


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
//Programa de Lista simplemente Enlazada, para los datos de Alumno como
//Código, Nombre y género, y la modificación de los respectivos módulos de dicha lista.
 
 
#include <iostream>
#include <conio.h>
#include <stdlib.h>
 
typedef int tipo;
 
                 struct estudiante
                         {   int codigo[5];
			     char nombre[50];
                             char genero[1];
                             } ;
 
                 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 el codigo: ";
scanf("%s",&x->codigo);
cout << "introduce el nombre: ";
scanf("%d",&x->nombre);
cout << "introduce el Sexo: ";
scanf("%d",&x->genero);
 
 
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;
       }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder