Ver Mensaje Individual
  #1  
Antiguo 03-04-2013
blackx5n blackx5n is offline
Miembro
 
Registrado: feb 2008
Posts: 51
Reputación: 17
blackx5n Va por buen camino
Lista Enlazada

Hola a todos, quiero hacer una lista enlazada que contenga datos enteros. Tengo varios problemas

1- Como puedo crear un procedimiento o funcion, donde pueda crear el primero nodo y posteriormente se vallan agregando los siguientes nodos.
Realize un procedimiento llamado insertar, pero creo que no es la forma correcta de hacerlo no he logrado agregar ningun dato ala lista.

2- Como puedo recorrer la lista ala inversa e imprimirla

Espero que alguno de ustedes me proporcione alguna idea o algun ejemplo de como realizar esto.


Código Delphi [-]
program Project1;

{$APPTYPE CONSOLE}

uses
  crt;

type
   pNodo = ^Nodo;

   Nodo = record
     dato:Integer;
     Sig,AntNodo; // Sig: Siguiente   Ant:Anterior
   end;

var
   listaNodo;
   firt:Pointer;
   j:Integer;


 // Imprime lista
procedure Imprimir(xNodo);
begin
     while x<>nil do
     begin
      Writeln(x^.dato);
      x:=x^.Sig;
     end;
end;


procedure insertar(dat:Integer; vfNodo);
var
    f:Pointer;
    j,n:integer;
begin
   New(vf);
   vf^.dato:=dat;
   vf^.Sig:=nil;
   for j:=1 to 3 do
   begin
   f:=vf;
   New(vf);
   vf^.dato:=dat;
   vf^.Sig:=f;
   end;
end;


begin
  // Primer Nodo
  New(lista);
  lista^.dato:=23;
  lista^.Sig:=nil;

  firt:=lista;
  New(lista);
  lista^.dato:=14;
  lista^.Sig:=firt;

  firt:=lista;
  New(lista);
  lista^.dato:=18;
  lista^.Sig:=firt;

  firt:=lista;
  New(lista);
  lista^.dato:=97;
  lista^.Sig:=firt;

  {
  lista:=nil;
  for j:=1 to 3 do
  insertar(j,lista);
  }

  ClrScr;
  Writeln('Lista Enlazada');
  imprimir(lista);

  ReadKey;
end.
Responder Con Cita