Ver Mensaje Individual
  #2  
Antiguo 03-04-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por blackx5n Ver Mensaje
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
Hola blackx5n.

Código Delphi [-]
...
type
  pNodo = ^TNodo;

  TNodo = record
    dato: Integer;
    ant,
    sig : pNodo;
  end;

// Crear Lista 
procedure CrearLista(var lst: pNodo; valor: Integer);
begin
  New(lst);
  lst^.dato := valor;
  lst^.ant  := nil;
  lst^.sig  := nil
end;

// Agregar un nodo 
procedure AgregarNodo(var lst: pNodo; valor: Integer);
var
  ndo: pNodo;
begin
  New(ndo);
  ndo.dato := valor;
  lst.sig  := ndo;
  ndo.ant  := lst;
  ndo.sig  := nil;
  lst      := ndo
end;

// Mostrar invertida 
procedure MostrarInvertida(var lst: pNodo);
var
  aux : pNodo;
begin
  aux := lst;
  while lst.sig <> nil do lst := lst.sig; 
  while lst <> nil do
  begin
    write(lst.dato:3);
    lst := lst.ant
  end;
  lst := aux
end;

// Liberar
procedure LiberarLista(var lst: pNodo);
begin
  Dispose(lst)
end;

// Ej.: Crear lista, Insertar elementos y mostrar invertidos
var
  i: Integer;
  Lista: pNodo;
begin
  CrearLista(Lista, 1);
  for i:= 2 to 20 do
     AgregarNodo(Lista, i);
  MostrarInvertida(Lista);
  LiberarLista(Lista);
  readln
end.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita