Pascal/Turbo Pascal - tipos de datos en listas enlazadas, ayuda!!!

   
Vista:

tipos de datos en listas enlazadas, ayuda!!!

Publicado por mandi (3 intervenciones) el 10/11/2013 20:17:22
buenas, queria ver si me podian ayudar a salir de dudas, tengo entendido que en las listas en pascal y creo que en cualquier otro lenguaje, se pueden almacenar mas de un solo tipo de dato al mismo tiempo en cada nodo o elemento, el problema es que toda la teoria y ejemplos que he encontrado solo viene explicado con integers, si alguno me pudiera orientar para saber como poner mas de un dato dentro del mismo nodo se les agradece.

seria algo como asi, guardar un string y en el mismo campo un int (por decir algo), el hecho es que no se como hacerlo

muchas gracias de antemano colegas programadores.
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

tipos de datos en listas enlazadas, ayuda!!!

Publicado por ramon (2072 intervenciones) el 10/11/2013 22:59:32
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
{A ver si esto te ayuda un poco}
 
program puntlist;
 uses
    crt;
 
  type
     mas = record
          nombre : string[40];
          telefon : longint;
        end;
 
     punteroejemp = ^ejemplo;
     ejemplo = record
           datos : string;
           nume  : integer;
           cierto : boolean;
           otro : mas;
           sig : punteroejemp;
         end;
 
   var
     tecla : char;
     prime, anter, actu : punteroejemp;
 
   procedure entramosdatos;
   var
      tre : char;
   begin
       with actu^ do
       begin
          write('Introduzca Datos  : ');
          readln(datos);
          write('Introduzca Numero : ');
          readln(nume);
          writeln('  Casado = [C] Solteri = [S] ');
          write('Introduzca Estado : ');
          readln(tre);
          if upcase(tre) = 'C' then
          cierto := true
        else
          cierto := false;
          write('Introduzca Nombre : ');
          readln(otro.nombre);
          write('Introduzca Telefono : ');
          readln(otro.telefon);
       end;
   end;
 
 
   procedure otroregistroentra;
   begin
      if prime = nil then
      begin
          new(actu);
          entramosdatos;
          prime := actu;
          actu^.sig := nil;
      end
   else
      begin
          anter := actu;
          new(actu);
          entramosdatos;
          anter^.sig := actu;
          actu^.sig := nil;
      end;
    end;
 
    procedure listardatos;
    var
      ver : punteroejemp;
    begin
       ver := prime;
       while ver <> nil do
       begin
          with ver^ do
          writeln(datos,'  ',nume,'  ',cierto,'  ',otro.nombre,'  ',
                  otro.telefon);
 
          ver := ver^.sig;
        end;
        writeln;
     end;
 
   procedure insertaprimero(entrada : punteroejemp);
   var
      pt : punteroejemp;
    begin
        new(pt);
        pt := entrada;
        pt^.sig := prime;
        prime := pt;
    end;
 
    procedure insertafinal(entrada : punteroejemp);
    var
      pt : punteroejemp;
    begin
        new(pt);
        pt := entrada;
        actu^.sig := pt;
        pt^.sig := nil;
        actu := pt;
    end;
 
    procedure insertamosporordendebalor(entrada : punteroejemp);
    var
      rr, pp, pt : punteroejemp;
      nofin, salir : boolean;
    begin
       new(pt);
       pt := entrada;
       pp := prime;
       rr := prime;
       if pp^.datos > entrada^.datos then
       begin
          insertaprimero(entrada);
       end
     else
         begin
         salir := false;
         nofin := false;
     repeat
         rr := pp;
         pp := pp^.sig;
         if pp^.datos > entrada^.datos then
         begin
            salir := true;
            nofin := true;
         end;
     until (pp^.sig = nil) or (salir = true);
      if (salir = false) and (nofin = false) then
      begin
         insertafinal(entrada);
      end
    else
       begin
          pt^.sig := pp;
          rr^.sig := pt;
       end;
    end;
  end;
 
    begin
       clrscr;
       prime := nil;
 
     repeat
       otroregistroentra;
       writeln('   Desea Entrar Mas Datos [S/N]');
       repeat
       tecla := upcase(readkey);
       until tecla in['S','N'];
       clrscr;
    until tecla = 'N';
       listardatos;
       writeln('   Pulse Una Tecla');
       readkey;
       dispose(actu);
    end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

tipos de datos en listas enlazadas, ayuda!!!

Publicado por mandi (3 intervenciones) el 11/11/2013 01:13:13
si me ha orientado, pero tengo una duda, segun veo estas pasando a los procedimientos un parametro que es entrada, mi consulta es donde nace ese parametro y como le doy valores??
y muchas gracias por contestar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

tipos de datos en listas enlazadas, ayuda!!!

Publicado por ramon (2072 intervenciones) el 11/11/2013 12:38:23
Ese parametro es el puntero que estas cargando en tu caso es el puntero [actu] que como
podrás apreciar es el que toma los valores en [entramosdatos;]
por lo tanto sera [insertamosporordendebalor(actu).
Y esto le dara los valores puesto que contiene todos los datos el puntero co insertara en
orden mira que el orden corresponde al a datos si quieres otro cambia lo por el que deses.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

tipos de datos en listas enlazadas, ayuda!!!

Publicado por mandi (3 intervenciones) el 11/11/2013 19:02:48
muchas gracias amigo, estaba confundido pero ya ahora si vi de donde sale todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar