馃捇Taller De Programacion
Ordenaci贸n por Selecci贸n (De menor a mayor).
Procedure Ordenar ( var v: vector; dimL: Integer );
var
i, j, p: Integer;
item:integer;
begin
for i:=1 to dimL-1 do
begin {busca el m铆nimo y guarda en p la posici贸n}
p := i;
for j := i+1 to dimL do
if v[ j ] < v[ p ] then p:=j;
{intercambia v[i] y v[p]}
item := v[ p ];
v[ p ] := v[ i ];
v[ i ] := item;
end;
end;
Ordenaci贸n por Inserci贸n (De menor a mayor).
Procedure Ordenar ( var v: vector; dimL: Integer );
var
i, j: Integer;
actual:integer;
begin
actual:=0;
for i:=2 to dimL do
begin
actual:= v[i];
j:= i-1;
while (j > 0) and (v[j] > actual) do
begin
v[j+1]:= v[j];
j:=j-1;
end;
v[j+1]:= actual;
end;
end;
Imprimir (Recursiva).
Procedure imprimir (L:lista);
Begin
if (L <> nil) then
begin
write (L^.dato);
L:= L^.sig;
imprimir (L);
end;
End;
馃尦Crear Arbol.
Procedure crear (var A:谩rbol; num:integer);
Begin
if (A = nil) then
begin
new(A);
A^.dato:= num;
A^.HI:= nil;
A^.HD:= nil;
end
else
if (num < A^.dato) then
crear(A^.HI,num)
else
crear(A^.HD,num)
End;
馃尦Cargar Arbol.
Program arboles;
Type
arbol = ^nodo;
nodo = record
dato: tipo;
HI: arbol;
HD: arbol;
end;
Var
abb:arbol; x:integer;
Begin
abb:=nil;
read (x);
while (x<>0)do
begin
crear(abb,x);
read(x);
end;
End.
馃尦Imprimir Arbol.
Procedure enOrden ( a : arbol );
begin //Input 1,22,3,44,5,6,7,2,0
if ( a<> nil ) then begin
enOrden (a^.HI);
write (a^.dato,'|');
enOrden (a^.HD);
end;
end;//1,2,3,5,6,7,22,44
Procedure preOrden ( a : arbol );
begin //Input 1,22,3,4,55,67,7,0
if ( a<> nil ) then begin
write (a^.dato,'|');
preOrden (a^.HI);
preOrden (a^.HD);
end;
end;//Output 1,22,3,4,7,55,67
Procedure posOrden ( a : arbol );
begin //Input 1,22,2,44,6,77,5,4,3,0
if ( a<> nil ) then begin
preOrden (a^.HI);
preOrden (a^.HD);
write (a^.dato);
end;
end;//Output 22,2,6,5,4,3,44,77,1
馃尦Buscar Elemento (Arbol).
Function Buscar (a:arbol; x:elemento): arbol;
begin
if (a=nil) then
Buscar:=nil
else if (x = a^.dato) then
Buscar:=a
else
if (x < a^.dato) then
Buscar:=Buscar(a^.hi ,x)
else
Buscar:=Buscar(a^.hd ,x)
end;