UTNianos

Versión completa: ESTRUCTURA COMBINADAS con listas
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola gente, estaba practicando para el parcial de algoritmos y me frene con algunos dudas.

Quería probar una estructura de lista lineal donde el nodo contenga un array, algo asi:

[Imagen: aub7rm.jpg]

Estoy haciendo el codigo y se me esta complicando, la idea que tengo es harcodear los nodos
Y despues mostrar la lista con el clasico procedimiento mostrar (con algunos retoques).....
Denme una mano!!!!
Estoy en una parecida, igual no creo,q te lo pidan xq te deberian dar mucha memoria para nodos.... De todas formas es modificar el rinfo del nodo y despues lo inicializas como cualquier vector, solo q en vez de ser vec[i] pones p^.info.vec[i]<--' '. Si lo inicializas con espacios en blanco.
Hice esto pero no se si esta bien.
Pinta bien ConfusedConfusedConfusedConfusedConfused


Spoiler: Mostrar



//////////////////////////////////////////////////////
// LISTAS LINEALES DONDE EL NODO CONTENGA UN ARRAY ///
//////////////////////////////////////////////////////

type
Registro = record
documento:word;
notas:array [1..10] of integer;
end;

PNodo = ^Nodo;

Nodo = record
Info:Registro;
sig:PNodo;
end;



procedure agragarNodo(var p:PNodo; x:Nodo);
var aux,nuevo:PNodo;
begin
new(nuevo);
nuevo^.info.documento:=x.Info.documento;
nuevo^.info.notas:=x.Info.notas;
nuevo^.sig:=nil;

if( p=nil ) then begin
p:=nuevo;
end else begin
aux:=p;
while(aux^.sig<>nil) do begin
aux:=aux^.sig;
end;

aux^.sig:=nuevo;
end;
end;

procedure mostrarLista(p:PNodo);
var aux:PNodo;
var i:byte;
begin
aux:=p;
while( aux<>nil ) do begin
writeln(aux^.Info.documento);
for i:=1 to 10 do begin
write(' ',aux^.Info.notas[i],' ');
end;
writeln(' ' );
aux:=aux^.sig;
end;
end;


var p:PNodo;
var z:Nodo;
begin

z.Info.documento:=6008;
z.Info.notas[1]:=3;
z.Info.notas[2]:=4;
z.Info.notas[3]:=5;
z.Info.notas[4]:=6;
z.sig:=nil;
agragarNodo(p,z);



z.Info.documento:=11111;
z.Info.notas[1]:=6;
z.Info.notas[2]:=7;
z.Info.notas[4]:=8;
z.Info.notas[7]:=10;
z.Info.notas[4]:=6;
z.sig:=nil;
agragarNodo(p,z);


writeln('----');
mostrarLista(P);

readkey();
end.


URLs de referencia