Arquivo
-
▼
2011
(124)
-
▼
outubro
(10)
- Pascal: Recursividade
- Microsoft prevê o futuro da tecnologia
- Já estava na hora de termos um regulamento que fav...
- Symbian Belle chega no dia 26 de outubro
- Programa capaz de preencher uma fila sequencial e ...
- Lista encadeada com uma função de busca que retorn...
- Algoritmo para repassar os elementos de uma fila, ...
- Exercício de pilha e fila em Pascal (Dev-Pascal)
- Morre Esteve Jobs
- Antivírus da Microsoft aponta vírus no Chrome
-
▼
outubro
(10)
Seguidores
Tecnologia do Blogger.
Notícias
Páginas
sexta-feira, 21 de outubro de 2011
15:55 | Postado por
Amauri |
Editar postagem
program ListaEncadeada;
type
ListEnc = ^No;
No = record
obj: String;
prox: ListEnc;
end;
var
L :ListEnc;
bus : string;
//CRIA LISTA VAZIA
procedure criar(var L:ListEnc);
begin
L := nil;
end;
//INFORMA SE A LISTA ESTÁ VAZIA OU NÃO
function vazia(L: ListEnc):boolean;
begin
if L = nil then
vazia := true
else
vazia := false;
end;
//INSERE UM ELEMENTO NA LISTA
procedure inserir(var L: ListEnc; s: string);
var
N, P: ListEnc;
begin
new(N);
N^.obj := s;
if vazia(L)then
begin
N^.prox := L;
L := N;
end
else
begin
P := L;
while (P^.prox <> nil)do
P := P^.prox;
N^.prox := P^.prox;
P^.prox := N;
end;
end;
//REMOVE UM ELEMENTO DA LISTA
function remover(var L: ListEnc; s: string):boolean;
var
P, Q: ListEnc;
begin
if vazia(L)then
remover := false
else
if (L^.obj = s)then
begin
P := L;
L := L^.prox;
dispose(P);
remover := true;
end
else
begin
P := L;
while ((P^.prox <> nil)and (P^.prox^.obj <> s)) do
begin
P := P^.prox;
end;
if (P^.prox <> nil) and (P^.prox^.obj = s) then
begin
Q := P^.prox;
P^.prox := Q^.prox;
dispose(Q);
remover := true;
end
else
begin
remover := false;
end;
end;
end;
// IMPRIME A LISTA
procedure imprimir(L: ListEnc);
var
P: ListEnc;
begin
if vazia(L)then
writeln('LISTA VAZIA!!!')
else
begin
P := L;
while (P <> nil) do
begin
write(P^.obj,' | ');
P := P^.prox;
end;
end;
end;
function busca(L: ListEnc; x: string):boolean;
var
P: ListEnc;
begin
P := L;
busca := false;
while (P <> nil) do
begin
if P^.obj = x then
busca := true;
P := P^.prox;
end;
end;
//INICIO DO PROGRAMA PRINCIPAL
Begin
criar(L);
writeln(vazia(L));
inserir(L, 'MACACO');
inserir(L, 'CACHORRO');
inserir(L, 'GATO');
inserir(L, 'LEÃO');
inserir(L, 'RATO');
inserir(L, 'CAMELO');
inserir(L, 'CORUJA');
imprimir(L);
writeln;
writeln(remover(L,'RATO'));
writeln('APÓS A REMOÇÃO...');
writeln;
imprimir(L);
writeln ('busca');
readln (bus);
writeln (busca(L, bus));
readln;
End.
type
ListEnc = ^No;
No = record
obj: String;
prox: ListEnc;
end;
var
L :ListEnc;
bus : string;
//CRIA LISTA VAZIA
procedure criar(var L:ListEnc);
begin
L := nil;
end;
//INFORMA SE A LISTA ESTÁ VAZIA OU NÃO
function vazia(L: ListEnc):boolean;
begin
if L = nil then
vazia := true
else
vazia := false;
end;
//INSERE UM ELEMENTO NA LISTA
procedure inserir(var L: ListEnc; s: string);
var
N, P: ListEnc;
begin
new(N);
N^.obj := s;
if vazia(L)then
begin
N^.prox := L;
L := N;
end
else
begin
P := L;
while (P^.prox <> nil)do
P := P^.prox;
N^.prox := P^.prox;
P^.prox := N;
end;
end;
//REMOVE UM ELEMENTO DA LISTA
function remover(var L: ListEnc; s: string):boolean;
var
P, Q: ListEnc;
begin
if vazia(L)then
remover := false
else
if (L^.obj = s)then
begin
P := L;
L := L^.prox;
dispose(P);
remover := true;
end
else
begin
P := L;
while ((P^.prox <> nil)and (P^.prox^.obj <> s)) do
begin
P := P^.prox;
end;
if (P^.prox <> nil) and (P^.prox^.obj = s) then
begin
Q := P^.prox;
P^.prox := Q^.prox;
dispose(Q);
remover := true;
end
else
begin
remover := false;
end;
end;
end;
// IMPRIME A LISTA
procedure imprimir(L: ListEnc);
var
P: ListEnc;
begin
if vazia(L)then
writeln('LISTA VAZIA!!!')
else
begin
P := L;
while (P <> nil) do
begin
write(P^.obj,' | ');
P := P^.prox;
end;
end;
end;
function busca(L: ListEnc; x: string):boolean;
var
P: ListEnc;
begin
P := L;
busca := false;
while (P <> nil) do
begin
if P^.obj = x then
busca := true;
P := P^.prox;
end;
end;
//INICIO DO PROGRAMA PRINCIPAL
Begin
criar(L);
writeln(vazia(L));
inserir(L, 'MACACO');
inserir(L, 'CACHORRO');
inserir(L, 'GATO');
inserir(L, 'LEÃO');
inserir(L, 'RATO');
inserir(L, 'CAMELO');
inserir(L, 'CORUJA');
imprimir(L);
writeln;
writeln(remover(L,'RATO'));
writeln('APÓS A REMOÇÃO...');
writeln;
imprimir(L);
writeln ('busca');
readln (bus);
writeln (busca(L, bus));
readln;
End.
Marcadores:
Pascal
Assinar:
Postar comentários (Atom)
Seu Sistema Operacional é...
TEMAS
- Cursos (1)
- Downloads (5)
- Eventos (3)
- I (1)
- Interessante (11)
- Licenciatura (1)
- Pascal (17)
- Tutoriais (2)
- Update Now (6)
- Visualg (3)
0 comentários:
Postar um comentário
Fique a vontade para Comentar!!!