30 likes | 334 Views
Listas duplamente encadeadas. Estrutura: tDado = integer; { ou real, char, etc.} tPtNo = ^tNo; tNo = record Ant: tPtNo Dado: tDado; Prox: tPtNo; end; var p,q: tPtNo ;. p. . /. /. procedure InsereNoFinal(var p:tPtNo; V: tDado);
E N D
Listas duplamente encadeadas Estrutura: tDado = integer; { ou real, char, etc.} tPtNo = ^tNo; tNo = record Ant: tPtNo Dado: tDado; Prox: tPtNo; end; var p,q: tPtNo; p ... / /
procedure InsereNoFinal(var p:tPtNo; V: tDado); var q,r: tPtNo; begin new(r); r^.Dado:=V; r^.Prox:=nil; if p = nil then p:= r else begin q:= p; while q^.Prox <> nil do q:=q^.Prox; q^.Prox:=r; end; end; Inserção de um nó em uma lista encadeada
procedure InsereNoFinal(var p:tPtNo; V: tDado); var q,r: tPtNo; begin new(r); r^.Dado:=V; r^.Prox:=nil; if p = nil then begin p:= r; r^.Ant:= nil; end; else begin q:= p; while q^.Prox <> nil do q:=q^.Prox; q^.Prox:=r; r^.Ant := q; end; end; Inserção de um nó em uma lista duplamente encadeada